Windows IIS(Internet Information Services)でHTML5、JavaScript、およびCSS3 httpsアプリケーションをホストしています。どのようにルートディレクトリが見えることはこれです:Javascript jsonpを使用してIISでgetJSONをPHPファイルに変換する
index.html
、src/index.js
、src/send_payment.php
私は(セキュリティのため)JSONPでgetJSONを使用してPHPファイルから現時点では単純な文字列を返すようにしようとしています。ここでは非稼働コードは次のとおりです。
index.js
<?php
try {
// 1. get data
$json_str = $_GET["json_str"];
// 2. parse the json string
$json_obj = json_decode($json_str);
// 3. get the parameters
$data_value = $json_obj->{"data_value"};
$payment_amount = $json_obj->{"payment_amount"};
}
catch (Exception $e) {
trigger_error("ERROR >> exception = " + $e->getMessage(), E_USER_ERROR);
}
return "test successful";
?>
send_payment.php
var json_obj = {
"data_value": 5489798123489725,
"payment_amount": 10.50,
}
var json_str = JSON.stringify(json_obj);
$.getJSON("https://localhost:443/src/send_payment.php?callback=?", "json_str=" + json_str, function (data) {
try {
console.log("SUCCESS >> " + JSON.stringify(data));
}
catch (e) {
console.log("ERROR >> " + e.toString());
}
});
私はコードが正しいか何かが欠けているかどうかわからないんだけど、問題はgetJSONから404(Page not found)を取得することです。 URLが間違っていますか?私はIISにローカルにアクセスしていますので、URLにlocalhost
があります。同じURLの代わりにAJAX POSTを使用すると、エラー405(メソッドは使用できません)が表示されます。ありがとうございました。
を、私は、このように405は、だから私は代わりにGETして守らなければならない、POSTはIISによってブロックされつつあると思いますが、これはすべきブロックされません。 – xinthose