2017-02-15 10 views
0

Я размещаю 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. Спасибо.

+0

Я думаю, что POST становится заблокирован IIS, таким образом, 405. Таким образом, я должен придерживаться GET вместо этого, который должен не блокируется. – xinthose

ответ

0

Я бы рекомендовал вам пойти на $ .ajax и метод POST, как показано ниже:

$.ajax({ 
     type: 'POST', 
     url: 'src/send_payment.php', 
     async: false, 
     data: {'data_value': 5489798123489725,'payment_amount': 10.5 }, 
     success: function (response) { 
      //do whatever you want here   } 
    }); 
+0

Спасибо. Я все еще получаю 404. – xinthose

+0

Привет ... Я отредактировал свой ответ ... посмотрите ... –

+0

Оказывается, мне нужно было установить php для IIS, и теперь это работает. – xinthose

 Смежные вопросы

  • Нет связанных вопросов^_^