我正在尝试使用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访问有关响应的任何信息.
您应该在逻辑服务器端移动.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。