我有以下网络服务;
[WebMethod]
public string HelloWorld()
{
return "Hello World";
}
Run Code Online (Sandbox Code Playgroud)
它是库存标准,没有对类装饰器进行任何改动.
我有这个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);
}
});
Run Code Online (Sandbox Code Playgroud)
这是一个后期操作,因为稍后我需要将数据发布到它.
当我执行jQuery时,我得到一个"无传输"错误.
我还应该提到的一点是,jQuery存储在我的机器上的一个简单的HTML文件中,而WebService也在我的机器上运行.
HTML页面上没有代码,它只是一个网页,而不是ac #project或任何东西.
任何人都可以指出我在正确的方向吗?
以下适用于IE以外的所有浏览器(我在IE 9中测试).
jQuery.support.cors = true;
...
$.ajax(
url + "messages/postMessageReadByPersonEmail",
{
crossDomain: true,
data: {
messageId : messageId,
personEmail : personEmail
},
success: function() {
alert('marked as read');
},
error: function(a,b,c) {
alert('failed');
},
type: 'post'
}
);
Run Code Online (Sandbox Code Playgroud)
我有另一个使用的函数dataType: 'jsonp',但我不需要在这个AJAX调用上返回任何数据.我的最后一招将是返回JSONP中包含的一些乱码,以使其正常工作.
任何想法为什么IE搞砸了没有返回数据的CORS请求?
在10以上版本的任何Microsoft IE浏览器上查看我的应用程序时,我在控制台上收到以下奇怪的错误:

我已尝试在AngularJS lib之前添加以下JavaScript代码来取消控制台:
console.log = function(){};
window.console = {log: function(){}};
Run Code Online (Sandbox Code Playgroud)
它没有任何区别.IE 10中的相同错误显示为:
SCRIPT7002: XMLHttpRequest: Network Error 0x80070005, Access is denied.
Run Code Online (Sandbox Code Playgroud)
可能是我试图从API获取'/ me'以检查用户是否经过身份验证或访客.
基本上.每次服务器提供2XX或3XX以外的响应时,消除那些恼人的控制台错误都会很棒!
更新:这似乎与通过不同的子域(CORS)访问API有关;
我有WCF Web服务和javascript客户端,使用SOAP 1.2通过AJAX连接到此服务.我想做的是传递一些参数来告诉AJAX SOAP调用只使用一个代理,就像我在WCF测试客户端中那样,通过取消选中"启动新代理".

这是我的SOAP AJAX调用:
DoSoapAjax: function (soapMethodName, data, successHandler, errorHandler, isAsync, currentInstance) {
var service = this;
var soapResult = soapMethodName + "Result";
var soap12WithWsHttpBindRequest ='<s:Envelope xmlns:a="http://www.w3.org/2005/08/addressing" xmlns:s="http://www.w3.org/2003/05/soap-envelope">' +
'<s:Header>' +
'<a:Action s:mustUnderstand="1">' + this.serviceContractNamespace + '/' + this.interfaceName + '/' + soapMethodName + '</a:Action>' +
'<a:MessageID>urn:uuid:605ea0c6-d09b-46bf-b61d-e61b377a135b</a:MessageID>' +
'<a:ReplyTo>' +
'<a:Address>http://www.w3.org/2005/08/addressing/anonymous</a:Address>' +
'</a:ReplyTo>' +
'<a:To s:mustUnderstand="1">' + this.tenantAdminService + '</a:To>' +
'</s:Header>' +
'<s:Body>';
if (data == emptyString)
{
soap12WithWsHttpBindRequest +=
'<' + soapMethodName + ' …Run Code Online (Sandbox Code Playgroud) ajax ×2
cors ×2
jquery ×2
angularjs ×1
cross-domain ×1
javascript ×1
jsonp ×1
proxy ×1
soap ×1
wcf ×1
web-services ×1