1

我从 php 页面调用肥皂服务时遇到问题。我实现了两页,第一页是在 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 应用程序。

当我单击在服务 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.
4

1 回答 1

1

两件事情:

1.) 这不再是SOAP服务,因为您来回传递JSON 。

2.) 您遇到了一个称为同源策略的安全限制

同源策略旨在防止恶意脚本调用恶意 Web 服务并将您的所有数据从浏览器发送给它们。基本上,您不能发出任何不使用 GET HTTP 动词的跨域请求(即与脚本起源不同的域)。

于 2012-06-23T15:44:09.193 回答