我一直在这个问题上停留了好几个小时,无法找到有效的答案,也许是因为我缺乏这方面的知识/经验。使用jQuery在远程服务器上调用Web服务
我知道,由于同源限制,我无法使用XMLHttpRequest在远程服务器上加载Web服务,但显然这可以使用jsonp数据类型并提供回调函数来完成,但我真的无法弄清楚如何使它工作。
远程服务器将是我的,所以我并不真正关心远程服务器可能发回任何恶意JavaScript代码的可能性。
我将不胜感激,如果有人可以帮助我在http://www.antoinecloutier.com/WebService1.asmx/HelloWorld
我已经创建了我的服务器和Web服务在测试页面以获取与web服务的一些工作代码工作正常 - >http://antoinecloutier.com/test.html
现在,我需要能够从另一台服务器访问该Web服务。
谢谢!
jQuery.support.cors = true;
$.ajax({
url: 'http://crossdomainurl',
type: 'GET',
dataType: 'json',
contentType: "application/json; charset=utf-8",
success: function (data) {
WriteResponse(data);
},
error: function (x, y, z) {
alert(x + '\n' + y + '\n' + z);
}
});
为了确保跨域正常工作,你将有一个Access-Control-Allow-Origin: *
响应头添加到Web服务响应:
http://pastie.org/private/7jlh6y1vqa1cjv8bjec0g 灿你能帮我用这段代码得到一个有效的例子吗? –
@ newblt123查看更新答案。 –
我已经将Access-Control-Allow-Origin添加到了我的Application_BeginRequest中,但我仍然收到以下错误: XMLHttpRequest无法加载http://www.antoinecloutier.com/WebService1.asmx/HelloWorld。该请求被重定向到“http://antoinecloutier.com/WebService1.asmx/HelloWorld”,该请求被禁止用于需要预检的跨源请求。 以下是代码:http://pastie.org/private/nvtldi38lto21p3vnswglq。 我正在使用ASMX服务而不是WCF,这是一个问题吗? –