【发布时间】:2015-03-23 20:47:13
【问题描述】:
我正在尝试使用 javascript 访问 .net 网络服务,但出现以下错误:
跨源请求仅支持以下协议方案:http、data、chrome、chrome-extension、https、chrome-extension-resource。
这里是java脚本代码:
var v = {"name":"zain",
"password":"abc"
}
// alert("wat");
$.ajax({
type: "POST",
url: "webcare.azurewebsites.net/WCService.asmx/GetParent",
data: JSON.stringify(v),
contentType: "application/x-www-form-urlencoded",
dataType: "json",
success: OnSuccess,
error: OnError
});
}
function OnSuccess(data, status)
{
alert("success: "+data.d);
}
function OnError(request, status, error)
{
alert("error: "+request.statusText);
}
根据一个解决方案,该解决方案说要在我的 Web 服务旁边添加一个 clientaccesspolicy.xml 文件,但它仍然给出相同的错误。 这是我在 clientaccesspolicy.xml 中添加的代码
<?xml version="1.0" encoding="utf-8"?>
<access-policy>
<cross-domain-access>
<policy>
<allow-from http-request-headers="SOAPAction">
<domain uri="*"/>
</allow-from>
<grant-to>
<resource path="/" include-subpaths="true"/>
</grant-to>
</policy>
</cross-domain-access>
</access-policy>
【问题讨论】:
-
试试
http://webcare.azurewebsites.net/WCService.asmx/GetParent作为网址 -
它是否需要一个 SOAP 请求(来自 XML 文件)?因为您希望 ajax 调用中的响应是 JSON。
-
@YuriyGalanter 我添加了 http:// 现在错误已更改为:请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,Origin 'null' 不允许访问。响应的 HTTP 状态代码为 500。
-
@dustmouse 不,它期待 json 结果。
-
服务器必须允许 CORS 请求。这是使用标题完成的。
标签: javascript .net json web-services