我有以下web服务;
[WebMethod]
public string HelloWorld()
{
return "Hello World";
}
这是普通的标准,不需要修改类装饰器。
我有这个jQuery方法;
var webMethod = "http://localhost:54473/Service1.asmx/HelloWorld";
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
data: "{}",
dataType: "json",
url: webMethod,
success: function(msg){ alert(msg.d); },
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(errorThrown);
}
});
这是一个post操作,因为稍后我需要向它发送数据。
当我执行jQuery时,我得到一个返回的"No transport“错误。
我还应该提到的一件事是,jQuery在我的机器上存储在一个简单的HTML文件中,WebService也在我的机器上运行。
没有代码隐藏在超文本标记语言页面上,它只是一个网页,而不是一个c#项目或任何东西。
有没有人能给我指个方向?
发布于 2011-06-22 06:07:10
添加这个:jQuery.support.cors = true;
它支持jQuery中的跨站点脚本(我相信是在1.4x之后引入的)。
我们使用的是一个非常旧的jQuery版本(1.3.2),并将其替换为1.6.1。一切都正常,除了.ajax()调用。添加上面的行解决了这个问题。
发布于 2014-01-20 22:55:43
我在一个页面上遇到了同样的错误,我添加了以下几行:
<!--[if lte IE 9]>
<script type='text/javascript' src='//cdnjs.cloudflare.com/ajax/libs/jquery-ajaxtransport-xdomainrequest/1.0.3/jquery.xdomainrequest.min.js'></script>
<![endif]-->
它终于对我起作用了;)在IE9中没有更多的错误。
发布于 2013-12-20 00:22:54
没有一个建议的答案对我来说是完全有效的。我的用例略有不同(在IE9中对S3 .json文件执行ajax get )。设置jQuery.support.cors = true;
消除了No Transport
错误,但我仍然收到Permission denied
错误。
对我来说起作用的是使用jQuery-ajaxTransport-XDomainRequest来强制IE9使用XDomainRequest。使用它不需要设置jQuery.support.cors = true;
https://stackoverflow.com/questions/5241088
复制相似问题