通过Phonegap/Ajax将XML数据发布到PHP API

通过Phonegap/Ajax将XML数据发布到PHP API,php,ajax,xml,cordova,jsonp,Php,Ajax,Xml,Cordova,Jsonp,我一直在构建一个应用程序,通过phonegap应用程序检查服务器的状态。问题是客户端没有给我访问现有API或服务器的权限。他给我的唯一信息是:“例如,您可以通过jQuery向名为“request”的xmlUserApi.php发送POST请求。” 据我所知,我们正在以这种格式发送一些XML <xmlApi> <action> getServerList </action> <auth></auth> </xmlApi&g

我一直在构建一个应用程序,通过phonegap应用程序检查服务器的状态。问题是客户端没有给我访问现有API或服务器的权限。他给我的唯一信息是:“例如,您可以通过jQuery向名为“request”的xmlUserApi.php发送POST请求。”

据我所知,我们正在以这种格式发送一些XML

<xmlApi>
  <action> getServerList </action>
   <auth></auth>
</xmlApi>

getServerList
例如,从中返回所有服务器的XML列表

每当我尝试将此数据发布到PHP(xmlUserApi.PHP)时,都不会返回任何内容。我觉得浏览PHP会有帮助,但是,客户端不让我这么做

任何帮助/想法都将不胜感激

编辑

我在检查员中得到的答复是:

<form action=xmlUserApi.php method=post>
<textarea name=request cols=120 rows=30></textarea>
<input type=submit value=Request></form><br><br>86.135.213.213



86.135.213.213
您的客户建议以编程方式复制用户在其提供的地址填写表单时的操作

为此,请尝试以下方法:

var xmlData = '<xmlApi><action> getServerList </action><auth>xxxxxx</auth></xmlApi>';
var serverPath = 'http://some.com/path/';
var requestPath = 'xmlUserApi.php';
var request = $.ajax({
    url: requestPath,
    type: 'POST',
    dataType: 'jsonp',
    data: { request: xmlData }
});
request.done(function(data) {
    /process data
});
request.fail(function(jqXHR, textStatus) {
    alert(textStatus);
});
与API的连接也可能存在问题,有时传递其他参数有助于解决此问题,您可以尝试:

var serverPath = 'http://their.server.tld/path/';
var requestPath = serverPath + 'xmlUserApi.php';
var authToken = 'sometoken';
$.ajax({
    url: requestPath,
    type: 'POST',
    dataType: 'jsonp',
    data: { action: 'getServerList', auth: authToken }
}).done(function(data) {
    //processing here
}).fail(function(jqXHR, textStatus) {
    alert(textStatus);
});

你到底想要什么?如何与客户沟通?因为在我看来这是唯一的解决办法。我们当然猜不到API,是吗?您的请求中可能有错误(如果我们以任何方式帮助您的话,您应该显示一些代码),或者服务器可能会执行一些奇怪的操作(当没有服务器时,可能会出现一个空结果?我们无法知道…),更具体地说:因此我们需要更多信息,我还强烈建议再次与您的客户交谈。您不需要查看代码,但需要某种API文档。或者你会猜到其他接口吗?是的,对不起。我已经要求客户提供任何类型的文档。我想我问的只是确认我没有遗漏一些愚蠢的东西,我确实需要客户提供更多的细节。谢谢你的代码,我对它进行了一些编辑并添加了错误处理,但是,所有的提示都是“错误”。你有什么想法吗,谢谢。这对我来说很好,但可能现在客户端API需要比它们提供给您的更多的输入。不过,我将更新我的答案,以备不时之需。非常感谢您的帮助。我从您更新的代码中得到的错误是“parsererror”。至少总比没有错误好!有什么想法吗?你能使用浏览器检查器查看请求吗?如果是这样的话,请尝试并在你的问题中发布回复。我已经在我的问题中添加了回复。这个响应是有意义的,因为在PHP地址上,他们有一个HTML表单用于测试。这让我觉得我需要客户提供更多信息,但他不愿意提供。你知道我应该具体要求什么吗?
var serverPath = 'http://their.server.tld/path/';
var requestPath = serverPath + 'xmlUserApi.php';
var authToken = 'sometoken';
$.ajax({
    url: requestPath,
    type: 'POST',
    dataType: 'jsonp',
    data: { action: 'getServerList', auth: authToken }
}).done(function(data) {
    //processing here
}).fail(function(jqXHR, textStatus) {
    alert(textStatus);
});