0

Jquery から PHP ページに JSON オブジェクトを渡すコードがあります。

問題は、クロスドメイン リクエストの送信にあります。

dataType:'json'

jqueryでは、私が理解しているxhttpエラー(セキュリティ)エラーが表示されます。

この投稿を読んだ後、JSONP は GET メソッドでのみ機能することも理解しました

これは、オブジェクトを作成して使用する方法です。

function order(id, name) {

        return {
            id: id,
            name: name
        }

    }

    var orders= [];

    orders.push(order("123", "Lamb Kebab"), product("234", "Chicken"));

    var jsonOrders = $.toJSON(orders); 

    $.post(
        "process.php",
        {orders: jsonOrders },
        function(data){
            $("#result").html(data);
        }
    );

JSON オブジェクトをクロスドメインに渡すための解決策は何ですか? それが不可能な場合、代替ソリューションは何ですか?

お知らせ下さい

ありがとう

編集:

Jクエリコード

 function product(code, type) {

        return {
            code: code,
            type: type
        }

    }

    var products = [];

    products.push(product("333", "Product one"), product("444", "Second product"));

    var jsonProducts = $.toJSON(products); 

    $.ajax({
        type: "GET",
        url: "http://page.tld/foo.php",
        contentType: "application/json; charset=utf-8",
        dataType: "jsonp",
        data:JSON.stringify({products: jsonProducts}),

        error: function (msg) {
            //alert("error");
            console.log("Error here" +msg);         

        },


        success: function (msg) {
                console.log("Success"+msg);
        }
    });

**

PHP 側のエラーは次のとおりです: 無効な引数が foreach() に指定されました ....

**

PHP コード (簡易版)

<?php header("Content-type: application/json; charset=utf-8");
require_once('json.php');

if (isset($_GET['products'])) {

$products = json_decode($_GET["products"],"true");
foreach ($products as $product){
echo $_GET['callback'] . '(' .(json_encode($product["type"])). ')';
}
}
else
{
echo $_GET['callback'] . '(' .(json_encode("not found")). ')';
}

?>

$_GET['products'] を見つけることができるブロックに入りますが、これは私の側の解析エラーですか? 明らかな間違いだと確信していますが、それを見つけることができません。

それは本当にごめんなさい

4

1 に答える 1

0

PHP側でGETパラメーターとデコードされたJSONを使用しました。

于 2012-08-09T10:42:54.113 に答える