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'] を見つけることができるブロックに入りますが、これは私の側の解析エラーですか? 明らかな間違いだと確信していますが、それを見つけることができません。
それは本当にごめんなさい