$("#btnSubmit").click(function () {
var fields = $("#testform").serializeObject();
var response = "Nista";
JSONstring = JSON.stringify(fields);
alert(JSONstring);
$.ajax({
type: "GET",
url: "http://localhost/testSimple.php?symbol=IBM&jsonpCallback=?",
// url: "http://localhost/testSimple.php?json=" + JSONstring,
dataType: "jsonp",
success: function (msg) {
alert("SUCCESS");
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(textStatus);
}
});
在 html 中:
<div id="dynamicContent" class="dynamicContent">
<form id="testform" method="post">
<div class="fm-req">
<h2>
The Form:</h2>
</div>
<!--<input type="text" name="message" id="Text1" name="Fieldname22" />-->
</form>
<div class="fm-add">
<input id="btnSubmit" type="button" value="Submit" />
</div>
</div>
和 php 脚本
<?php
$person = array(
'name' => 'Quentin',
'country' => 'Australia'
);
header('Content-type: application/json');
echo json_encode($person);
?>
在 firebug 中是可以的,但成功没有捕获到响应.. 为什么?
最佳答案
尝试将您的 PHP 脚本更改为:
<?php
$jsonpCallback = $_GET['jsonpCallback'];
$person = array(
'name' => 'Quentin',
'country' => 'Australia'
);
header('Content-type: application/json');
echo $jsonpCallback.'('.json_encode($person).')';
?>
在评论中更新您的问题:
你的 JavaScript 应该是这样的:
$("#btnSubmit").click(function () {
var fields = $("#testform").serialize();
$.ajax({
type: "GET",
url: "http://localhost/testSimple.php?"+fields+"&jsonpCallback=?",
dataType: "jsonp",
success: function (msg) {
alert("SUCCESS");
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(textStatus);
}
});
});
关于php - 响应正常,但 $.ajax 上的成功方法未触发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6484194/