JQuery JSON调用PHP WebService始终运行“错误”回调

我现在头疼,因为我整天都遇到这个问题,但仍无法修复。 我已经看了谷歌和StackOverflow几个小时,尝试了很多方法(包括从JSON更改为JSONP,检查PHP上的标题,localhost测试),问朋友等等,我仍然卡住了。 也许这只是一个细节,我不知道。

我正在研究Android移动应用程序,为此,我在托管(例如,example.com)上有一个PHP Web服务,因为我使用PHP WS JSON客户端进行测试,所以工作正常。 问题是我现在使用jQuery,JSON和Ajax从我的计算机上的JS文件中调用此WS,我从Google Chrome的调试器控制台得到以下响应:

  • readyState:4
  • statusText:“确定”
  • responseText :(我需要什么,没有错误)

但是在服务器的响应中, 我总是收到错误回调,而不是成功 。 我读它是因为服务器无法正确解析JSON,但我真的不知道。

我告诉你我的代码。

来自CLIENT.JS:

$.ajax({ type: "POST", crossDomain: true, contentType: "application/json utf-8", dataType: "json", url: "http://www.example.com/ws/webservice.php/" + methodName, data: JSON.stringify(window.parameterArray), success: function (response) { alert('Success!'); window.resultVar = "Success! " + response; console.log(response); }, error: function (response) { alert('Error'); window.resultVar = "Error: " + response; console.log(response); } }); 

来自SERVER.PHP:

  

有谁知道可以做些什么? 也许,正如我之前所说,问题只是一个细节。 我真的不知道,我对这种事情有点新意。

在正手感谢!

更新:

我刚刚意识到Chrome控制台告诉我这个:

 GET http://localhost:81/.../cordova_plugins.json 404 (Not Found) 

这可能是问题的原因吗?

更新2:

看这里,我有一个线索。 我在错误函数中添加了更多参数,并得到了自己的结果:

(错误的变化是从函数(响应)函数(jqXHR,textStatus,errorThrown)

 jqXHR.responseText: [an array with the info I'm asking] errorThrown: "SyntaxError: Unexpected token" 

因为您正在进行跨域调用,所以您需要使用JSONP。 PHP服务器必须形成如下响应:callback(jsonSyntax);

更改

 contentType: "application/json utf-8", 

 contentType: "application/json; charset=utf-8", 

您的contentType标头的错误信息导致您的服务器错误地解释您的POST请求的内容。

尝试更改JQuery URL:

 http://www.example.com/ws/webservice.php/methodName 

至:

 http://www.example.com/ws/webservice.php?method=methodName 

然后尝试从PHP的$ _GET [‘method’]中读取它,我认为这应该是你的问题

只需更改对文本的响应,然后将文本解析为JSON,例如:

var json = JSON.parse(data);