我尝试通过Ajax将json数组发送到远程PHP服务器,但我只得到一个“ParserError”。 谢谢
的Ajax
$.ajax({
dataType : 'jsonp',
jsonp : 'jsonp_callback',
data : {
button : "test"
},
url : 'http://www.my-server.de/file.php',
success : function(sqlArray) {
alert(sqlArray);
},
error : function(jqXHR,textStatus,errorThrown) {
alert(jqXHR);
alert(textStatus);
alert(errorThrown);
}
});
PHP
<?php
echo "Button ist";
echo $_GET['button'];
?>
谢谢,但我只想写出json对象的值。 现在发送工作,但php网站没有写出值。
function postJSON(){
$.ajax({
type: "GET",
url: "http://www.my-server.de/file.php",
data: { 'dataString': "juhu" },
cache: false,
success: function()
{
alert("Order Submitted");
},
error: function()
{
alert("Error");
}
});
PHP:
<?php
echo "Value is:";
echo $_GET['dataString']; ?>
答案 0 :(得分:0)
只是json_encode()不会做这个工作。由于您使用jsonp作为数据类型,您需要返回一个回调函数 - 这就是我使用的:
public static function renderJsonp($object) {
header('Content-Type: text/javascript; charset=utf8');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Max-Age: 3628800');
header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE');
header('Content-type: application/json; charset=utf-8');
$callback = "callback";
if(isset($_GET['callback'])) $callback = trim($_GET['callback']);
echo $callback . '(' . json_encode($object) . ')';
}
使用stdClass()创建Object。