当我的asmx Web服务位于不同的域中时,代码似乎不起作用。有什么我想念的吗?
function CallGreet() {
$.ajax({
type: "POST",
url: "http://test.me/TestWebService.asmx/HelloWorld",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: OnSuccess,
error: OnError
});
}
...谢谢
答案 0 :(得分:2)
您需要了解JSONP
您可以在此处找到更多详细信息:How to call external webservice using jquery "jsonp"?
另请注意,jsonp jquery结果与@Craig White的答案相同:Using JQuery To make cross domain Ajax Calls
答案 1 :(得分:1)
我更喜欢包含从其他域生成的javascript文件,该文件可以为我提供信息。
<script type="text/javascript" src="http://otherdomain.com/data.php"></script>
您可以动态添加如下脚本:
var s = document.createElement('script');
s.type = 'text/javascript';
s.async = true;
s.src = 'http://otherdomain.com/data.php?×tamp=' + new Date().getTime(); //Added to deter caching
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(s);
答案 2 :(得分:0)
浏览器阻止JavaScript对另一个域进行ajax调用。
您可以做的是,您在域上创建一个本地asp文件,该文件读取另一个域上的数据并调用它。
答案 3 :(得分:0)
您的问题是所有浏览器阻止跨网站请求。您需要将页面与服务器放在同一页面上,或将服务器设置为允许跨站点请求。 看看http://www.easywms.com/easywms/?q=en/how-send-cross-site-request-ajax