如何使用jQuery调用soap服务

时间:2012-06-23 15:05:53

标签: asp.net jquery soap

我从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.

1 个答案:

答案 0 :(得分:1)

两件事:

1。)由于你来回传递SOAP,这不再是JSON服务。

2。)您正在遇到名为Same Origin Policy

的安全限制

Same Origin Policy旨在防止恶意脚本调用恶意Web服务并从浏览器向其发送所有数据。基本上,您不能发出任何不使用GET HTTP verb的跨域请求(即与脚本发起的域不同的域)。