将Json从PhoneGap发送到远程php服务器

时间:2013-07-17 12:42:07

标签: php ajax

我尝试通过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']; ?>

1 个答案:

答案 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。