2014-01-07 49 views
0

我一直在构建一个应用程序来通过phonegap应用程序检查服务器的状态。麻烦的是客户端不能让我访问现有的API或服务器。他给我的唯一信息是:“例如,您可以通过jQuery向POST请求发送名为”request“的xmlUserApi.php。”通过Phonegap/Ajax将XML数据发布到PHP API

据我了解,我们在格式

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

例如,从返回所有服务器的XML列表发送一些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 
+0

你到底在问什么?如何与客户沟通?因为这在我看来是唯一的解决方案。我们当然无法猜测API,我们可以吗?你的请求中有一个错误(如果我们应该以任何方式帮助你,应该显示一些代码),或者服务器可能会做一些奇怪的事情(当没有服务器存在时,可能会得到一个空的结果?我们无法知道...) – dirkk

+0

更具体地说:所以我们需要更多的信息,我也强烈建议再次与您的客户交谈。您不需要查看代码,但需要某种API文档。还是你期望猜测其他接口? – dirkk

+0

对不起。我已经向客户询问任何类型的文档。我猜我在问什么,只是为了确认我没有错过什么愚蠢的事情,而且我确实需要客户端的更多细节。谢谢 – zayaefs

回答

0

你的客户是在暗示以编程方式复制的作用用户在他们提供的地址填写表格。

要做到这一点,试试这个:

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); 
}); 

//到这里

离开原来的答复“您可以发送POST请求xmlUserApi.php名为‘例如要求’的jQuery。 “

不知道他们的意思是“命名的‘请求’”,但使用jQuery你可以这样做:

var serverPath: 'http://their.server.tld/path/'; 
var authToken: 'sometoken'; 
$.post(serverPath + 'xmlUserApi.php', { action: 'getServerList', auth: authToken }, 
    function(data) { 
     //whatever you want to do with the return goes here 
    } 
); 

可能还有与连接到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); 
}); 
+0

嗨,感谢您的代码,我已经编辑了一下并添加了错误处理,但是,所有提醒都是“错误”。你有什么想法,谢谢。 http://pastebin.com/eUF0GZx0 – zayaefs

+0

这对我来说看起来不错,但现在客户端API可能需要比他们提供的更多的输入。我将更新我的答案,但可能会作为替代方案。 –

+0

非常感谢您的帮助。我从你的更新代码中得到的错误是“parsererror”。至少它比没有错误好!有什么想法吗? – zayaefs