标签:ajax web-services json javascript jquery
我正在尝试使用jquery $.ajax建立对Web服务的通用调用.我希望能够获取原始数据并将其绑定到网格.
当我知道dataType时,我的调用可以正常工作,但是我想尝试进行ajax调用而又不知道数据类型,特别是要查找dataType是什么.
例如,我的ajax调用知道数据类型可能是:
$.ajax({
type: 'GET',
crossDomain: true,
dataType: "jsonp",
url: 'http://itunes.apple.com/search?term=coldplay',
success: function (res, status, xhr) {
//DoStuff;
},
error: function (jqXHR, textStatus, errorThrown) {
//DoStuff
}
});
但是,任何时候我不知道数据类型而发出请求时,我只会得到响应状态为“错误”吗?
我最终想做的是对url(网络服务)执行ping操作,该操作返回json,xml或odata(不太可能).由于我不知道哪一个,因此我希望能够只对URL进行一次调用,以找出可以返回的数据类型以及内容类型.
我试过简单地返回错误中标头中的内容类型,但是到目前为止,我尝试过的任何方法都没有起作用或返回了任何东西.
$.ajax({
type: 'GET',
crossDomain: true,
url: 'http://itunes.apple.com/search?term=coldplay',
success: function (res, status, xhr) {
//DoStuff
},
error: function (jqXHR, textStatus, errorThrown) {
$("#results").html(textStatus + jqXHR.getResponseHeader('Content-Type'));
}
});
甚至可以用Jquery完成吗?
编辑
我知道可以(在大多数情况下)可以在服务器端完成此操作,并且很可能最终会发生这种情况.但是,为了了解我可以在不知道我的dataType的情况下将网格绑定到数据源客户端的距离,上述问题就产生了.
感谢所有的时间.
解决方法:
您的方法是合理的,但是您正在要求用户的浏览器从第三方Web服务器获取信息.
XMLHttpRequest cannot load
http://itunes.apple.com/search?term=coldplay
. No ‘Access-Control-Allow-Origin
‘ header is present on the requested resource. Origin ‘http://fiddle.jshell.net
‘ is therefore not allowed access.
除非第三方授予您许可,否则Same Origin Policy将阻止您的JavaScript访问有关响应的任何信息.
您应该在逻辑服务器端移动.
标签:ajax,web-services,json,javascript,jquery 来源: https://codeday.me/bug/20191122/2056402.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。