从Javascript / jQuery调用PHP webservice方法

时间:2014-11-25 08:11:47

标签: javascript jquery

我已经创建了一个PHP Web服务方法

public function import_external_xml($importXml)

我想允许客户端通过我的Web服务方法上传xml。我的Web服务与客户端不在同一个域中。客户端有一个带有按钮的网页,他想写一些javascript / jQuery来通过我的web服务方法上传xml。

他怎么能这样做?

server.php中的Web服务方法:

public function import_external_xml($importXml)
{ 
    echo 'import_external_xml';
    exit;
}

2 个答案:

答案 0 :(得分:0)

我使用Ruby on Rails做了同样的事情。但是发送的数据不是xml格式。 当你说你的web服务不在同一个域上时,你必须处理CORS,这是一个重要的事情。您可以在https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS

了解CORS

您可以参考此帖子JQuery JSON Calls To PHP WebService Always Runs "Error" Callback



function callPhpAPI(){
  var dataa = {"your_data":youdata};

  $.ajax({
            url : yourwebserviceurl,
            type: 'POST',
            data : JSON.stringify(dataa),
            contentType : "application/json",
            success:function(data)
            {
                if(data){ 
                  alert(data);   
                  //console.log("Data from Server"+JSON.stringify(data));
                }
                else{
                  console.log("Data is empty");
                } 
            },
            error: function(xhr) {
                alert('Error!  Status = ' + xhr.status + " Message = " + xhr.statusText);
                //console.log('Error!  Status = ' + xhr.status + " Message = " +  xhr.statusText);
            }
        });
});




答案 1 :(得分:0)

您可以使用ajax

调用您的php函数
xmlDocument = $("<wrap/>").append(xmlDocument).html();
xmlDocument = encodeURIComponent(xmlDocument);

然后是ajax

jQuery.ajax({
    type: "POST",
    url: 'your_functions_address.php',
       processData     :   false,
   contentType     :   'text/xml',
     data            :   xmlDocument,

    success: function (obj, textstatus) {
                  if( !('error' in obj) ) {
                      yourVariable = obj.result;
                  }
                  else {
                      console.log(obj.error);
                  }
            }
});

我认为你想通过这个ajax帖子传递xml,然后你可以参考这个讨论

post xml

还要检查this

相关问题