我写了一个web服务。我正在使用JavaScript调用此Web服务。我从不同的域调用这个。为此,我在Web服务中添加了[System.Web.Script.Services.ScriptService]
属性。从JavaScript我打电话使用XMLHttpRequest服务。我使用Firefox进行了测试,一切都很顺利。但它在IE中不起作用。使用JavaScript调用跨域asmx网络服务
经过一番搜索,我发现这是一个与有关的问题跨域调用。我已经通过了这里发布的一些问题。然后,我做我的代码如下变化 -
从JavaScript我现在要求使用XDomainRequest服务。
我已新增下列befor在Web服务中return语句行 -
HttpContext.Current.Response.AppendHeader("Access-Control-Allow-Origin", "*"); HttpContext.Current.Response.AppendHeader("Access-Control-Allow-Credentials", "true"); return result;
它仍然是在Firefox正常工作。但在IE8中(据我所知,XDomainRequest不能在较低版本的IE中工作),它显示错误(XDomainRequest.onerror)。
我错过了什么吗?
他试图提出一个跨域请求 - 这是行不通的。另外,jQuery只是包装XHR。 – 2012-01-11 15:00:57
对不起,改正! – 2012-01-11 15:41:19
重要的是要明白,詹姆斯的插件使用YQL通过公共第三方来反弹请求,使用JSONP支持增强他们的请求,而不是实际解决底层的跨源问题。 – 2012-01-11 20:19:01