【问题标题】:using c# web service (asmx) in php在 php 中使用 c# web 服务 (asmx)
【发布时间】:2012-12-09 05:36:12
【问题描述】:

我想将 c# web 服务与 PHP 和 jQuery 一起使用。 下面的代码将带有 $.ajax 的数据发布到 php 代码中。但在 i=of url 中,我无法从 Web 服务获取任何数据。如何帮助我开发此代码

$.ajax({
          type: "POST",
          url: "http://www.w3schools.com/webservices/tempconvert.asmx/CelsiusToFahrenheit",
          dataType: 'jsonp',
          success: function(data) {alert('ok')},
          error  : function(e) {alert('error')}
        });

【问题讨论】:

    标签: php jquery


    【解决方案1】:

    您违反了same origin policy。您不能向远程域发送 AJAX 请求。如果您想使用 AJAX 从 javascript 使用 ASMX Web 服务,则此服务必须位于与包含此脚本的页面相同的域中。

    您似乎在请求中指定了dataType: 'jsonp',但如果远程ASMX 服务未配置为支持JSONP,则这没有任何意义。

    作为一种可能的解决方法,您可以编写一个新的 PHP 脚本,作为本地域和远程域之间的桥梁,然后将 AJAX 请求发送到 PHP 脚本。该脚本随后将通过发送 HTTP 请求调用远程 Web 服务并返回结果:

    $.ajax({
        type: 'POST',
        url: '/CelsiusToFahrenheit.php',
        success: function(data) { alert('ok') },
        error: function(e) { alert('error') }
    });
    

    然后您需要编写的CelsiusToFahrenheit.php 脚​​本会将调用委托给远程域以调用实际的 ASMX 服务。有数以亿计的 那里有关于如何使用 PHP 调用 ASMX Web 服务的教程。这是一个:Call asp.net web service from PHP with multiple parameters

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-31
      • 1970-01-01
      • 2016-02-09
      • 1970-01-01
      • 1970-01-01
      • 2013-03-27
      • 2013-04-10
      • 2013-12-15
      相关资源
      最近更新 更多