我已经创建了一个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;
}
答案 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,然后你可以参考这个讨论
还要检查this