我测试了一个从web服务请求数据的vanilla html网站。我的网站在本地端口81上运行,网络服务在端口61616上运行。jQuery 1.6跨域请求不起作用
这个工作在jQuery 1.4中。
我已经升级到1.6,并认真考虑回去,因为跨域的实现被打破。
在IE中,我找不到资源,显示的URL是除hostname:port之外的所有内容,没有它,资源(当然)将不会被找到。
在Chrome中出现以下错误:XMLHttpRequest无法加载http://localhost:61616/ZifmiaService/Register/foo/bar/foo bar/[email protected]。 Access-Control-Allow-Origin不允许原产地http://localhost:81。
Web服务具有Access-Control-Allow-Origin:* set,因此服务器端允许跨域请求。
我也有:
$ .support.cors = true;
在我的客户端JavaScript代码。
我没有使用jsonp,也不认为我需要使用正确的设置。
我还能做什么错,或者我应该向jQuery报告错误?
-
- 添加的代码* *
如上描述的URL成为61616网址。
this.register = function (username, password, nickName, emailAddress, callback, errorCallback) {
$.ajax({
type: "GET",
url: ZifmiaRegister.format(username, password, nickName, emailAddress),
crossDomain: true,
dataType: "json",
success: function (zifmiaRegistrationViewModel) {
callback(zifmiaRegistrationViewModel);
},
error: function (xhr, textStatus, errorThrown) {
errorCallback(xhr, textStatus, errorThrown);
},
beforeSend: function() { $(ajaxLoading).show(); },
complete: function() { $(ajaxLoading).hide(); }
});
}
您的项目中需要升级到1.6的需求有哪些变化? – 2011-05-22 05:36:00
@david,发布你的ajax代码,我不认为1.6有什么问题,有些设置可能已经改变..发布你的ajax代码,我们可以看到有什么错误。 – kobe 2011-05-22 05:48:07
在主要问题中添加了代码。我使用字符串格式将服务URL(该服务构建在WCF 4.0 Rest中)组合在一起。您可以在http://zifmia.textfyre.com/ZifmiaService/help – 2011-05-22 14:35:02