0

我尝试通过 Ajax 将 json 数组发送到远程 PHP 服务器,但我只收到“ParserError”。谢谢

阿贾克斯

$.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']; ?>
4

1 回答 1

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() 创建对象。

于 2013-07-17T13:08:46.727 回答