2017-02-15 16 views
0

Windows IIS(Internet Information Services)でHTML5、JavaScript、およびCSS3 httpsアプリケーションをホストしています。どのようにルートディレクトリが見えることはこれです:Javascript jsonpを使用してIISでgetJSONをPHPファイルに変換する

index.htmlsrc/index.jssrc/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(メソッドは使用できません)が表示されます。ありがとうございました。

+0

を、私は、このように405は、だから私は代わりにGETして守らなければならない、POSTはIISによってブロックされつつあると思いますが、これはすべきブロックされません。 – xinthose

答えて

0

私は以下のように$アヤックスと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

私はIISのためにPHPをインストールする必要があったことが判明し、今は動作します。 – xinthose

関連する問題