Я размещаю https-приложение HTML5, JavaScript и CSS3 в Windows IIS (Internet Information Services). Как корневой каталог выглядит так:Javascript getJSON для PHP-файла в IIS с использованием jsonp с переменной
index.html
, src/index.js
, src/send_payment.php
Я пытаюсь вернуть простую строку в данный момент из файла PHP с использованием getJSON с JSONP (для безопасности). Вот нерабочий код:
index.js
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());
}
});
send_payment.php
<?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";
?>
Я не уверен, если код правильный или отсутствует что-либо, но проблема в том, что я получаю 404 (Страница не найдена) от getJSON. Неправильно ли URL? Я обращаюсь к IIS локально, поэтому localhost
в URL. Я получаю ошибку 405 (метод не разрешен) при использовании AJAX POST вместо этого с тем же URL. Спасибо.
Я думаю, что POST становится заблокирован IIS, таким образом, 405. Таким образом, я должен придерживаться GET вместо этого, который должен не блокируется. – xinthose