我从php页面调用soap服务时遇到问题。我实现了两个页面,第一页是在php中创建的,第二页是在asp.net中创建的。在asp.net应用程序中,我有SOAP服务,应该从php调用哪些方法。
我的SOAP服务上的方法,如下所示:
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public bool UpdateVotes(string vote) {
//Code
}
在PHP应用程序上,我将在下一个方向调用UpdateVotes方法:
$.ajax({
type: "POST",
url: "http://localhost:5690/VoteServices.asmx/UpdateVotes",
data: "{'vote': '" + vote + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
},
error: function (xhr, status, error) {
}
});
首先,我使用SOAP服务运行asp.net应用程序,然后启动php aplication。
当我点击按钮在服务i浏览器控制台上调用web方法时出现此错误:
Failed to load resource: the server responded with a status of 500 (Internal Server Error) http://localhost:5690/VoteServices.asmx/UpdateVotes
XMLHttpRequest cannot load http://localhost:5690/VoteServices.asmx/UpdateVotes. Origin http://localhost:8080 is not allowed by Access-Control-Allow-Origin.
答案 0 :(得分:1)
两件事:
2。)您正在遇到名为Same Origin Policy
的安全限制Same Origin Policy旨在防止恶意脚本调用恶意Web服务并从浏览器向其发送所有数据。基本上,您不能发出任何不使用GET HTTP verb的跨域请求(即与脚本发起的域不同的域)。