我正在使用jQuery 1.8.3 Ajax函数进行跨源请求。下面的代码始终返回“fail”,但在控制台日志中为每个Ajax请求记录“200 OK”。鉴于日志显示状态为200,是否应该执行成功功能?如何在返回状态200时执行成功功能?
$().ready(function() {
var checkIt = function(checkURL, resultP) {
$.ajax({
url: checkURL,
type: 'GET',
cache: false,
success: function() {
$(resultP).text("ok");
},
error: function() {
$(resultP).text("fail");
}
});
};
checkIt("https://firstURL", "#p1p");
checkIt("https://secondURL", "#p2p");
checkIt("https://thirdURL", "#p3p");
)};
控制台日志显示以下内容(每个请求都有200个响应)
[10:03:37.898] GET https://firstURL [HTTP/1.1 200 OK 141ms]
[10:03:37.898] GET https://secondURL [HTTP/1.1 200 OK 141ms]
[10:03:37.898] GET https://thirdURL [HTTP/1.1 200 OK 141ms]
谢谢!
答案 0 :(得分:0)
您尝试获取数据的URL可能因此遭遇200但是您尝试命中的服务器的错误或问题不允许跨域请求因此“失败”。
答案 1 :(得分:0)
这不起作用,因为它是跨域调用。
解决此问题
<强>的JavaScript 强>
创建一个功能
function getMyData(data) {
alert(data);
//Do the magic with your data
}
服务器端
在服务器端将数据包装在函数语法
中getMyData("Enter your data here");
<强>的JavaScript 强>
然后创建一个脚本标记并添加一个指向跨域页面的链接
<script type="text/javascript"
src="cross ref url">
</script>
编辑:另一种选择是 在您的域上创建代理。即在您的域中创建一个页面,该页面在内部调用跨域页面并将相同的数据返回给您的Ajax调用。