【发布时间】:2013-10-15 18:57:42
【问题描述】:
我现在已经积累了大约五六个不同的教程,我仍然无法找出问题所在!
使用 JQuery Mobile (phonegap) 向 PHP 服务器发送和接收数据。我似乎无法让 JQuery 脚本获得响应。 服务器上的 PHP:
<?php
// Set up associative array
$data = array('success'=> true,'message'=>'Success message: worked!');
// JSON encode and send back to the server
echo json_encode($data);
?>
JQuery 函数(被调用):
<script type="text/javascript">
$(function () {
$('#inp').keyup(function () {
var postData = $('#inp').val();
$.ajax({
type: "POST",
dataType: "json",
data: postData,
beforeSend: function (x) {
if (x && x.overrideMimeType) {
x.overrideMimeType("application/json;charset=UTF-8");
}
},
url: 'removedmyurlfromhere',
success: function (data) {
// 'data' is a JSON object which we can access directly.
// Evaluate the data.success member and do something appropriate...
if (data.success == true) {
alert('result');
$('.results').html(data.message);
} else {
$('.results').html(data.message);
}
}
});
});
});
</script>
抱歉格式化,这一切都是成对复制的。删除了我的网址。
我知道该函数正在触发,因为如果我删除了 alert('here');并将其放在它显示的 ajax 调用之上。
有人知道为什么没有调用成功函数吗?任何浏览器上的类结果都不会在 div 中显示。
谢谢!
【问题讨论】:
-
在进行 ajax 调用时,您在浏览器中得到什么响应?你真的得到了 200 响应吗?这是跨域请求吗?
-
这只是一个具有如下关联的数组:{"success":true,"message":"Success message: hooray!"} 添加 tak3er 建议的标头我得到一个 .json 文件文件存储在本地,除了存储在网页外部服务器上的 php 文件。
-
我怀疑是跨域请求
-
我尝试过使用 jsonp 并添加回调参数。这也不起作用
-
@WelshJohn 因此,您是说在使用浏览器的开发工具(或 Firebug 或类似工具)查看 AJAX 调用的响应信息时,您会收到带有您期望的 JSON 正文的 200 响应?
标签: javascript php jquery json cordova