2017-02-14 12 views
1

WAMP 3.0.8 PHP 7.0.10 Apache 2.4.23を使用していて、最初のJSON APIを構築しようとしています。リモートサービスがajax投稿への応答を送信しない

ajax呼び出しは、サーバーにデータを送信します。私はそれがテキストファイルに格納されて見ることができます。

私のAJAXはこのように見えます。

$(document).ready(function(){ 
    $('#order').click(function(){ 

     var send = {"name":"Jo Moe", "age":39, "city":"Meridian"}; 
     var prescription = JSON.stringify(send); 
     $.ajax({ 
      type: 'POST', 
      dataType: 'JSON', 
      url: 'https://apa.superserver.com/receive.php', 
      data: {"scripts": prescription}, 
      success: function(data){ 
       console.log(data); 
       alert(data); 
       $('#success').html('<p>Finished</p>'); 
      }   
     }); 

    }); 

}); 

サーバー側では、次のようになります。それは、同じサーバー上にあったとき

if(isset($_POST["scripts"]) && !empty($_POST["scripts"])){ 
    $sent = filter_input(INPUT_POST, "scripts", FILTER_SANITIZE_SPECIAL_CHARS); 
    $scripts = html_entity_decode($sent); 

    file_put_contents("jsonScript.txt", $scripts); 

    $finish = "Message Received!"; 

    echo json_encode($finish); 

} 

は今、このすべてが働きました。私はreceive.phpを分離し、それをリモートサーバに置いた。それはもはや応答を表示しません。

ありがとうございます!

UPDATE:

Get json ajax php form to work remotely

上記のリンクは私の問題を修正して起こっていたかを把握するために私のコンソールでより多くの情報を与えました。 (私は-1を与えてはならないはずです)ここでインデックスを検索する際の問題は、あなたが投稿内の正確な用語を使用しないと見つけることはほとんど不可能だということです。 (私の2セント)

エラー関数を追加し、 "data"から "response"に変更すると、xhrと相違があります。私はすべてを見ることができます。

コンソールにこの私のリターン:

Object {readyState: 4, responseText: "↵↵hello!"Message Received!"", status: 200, statusText: "OK"} 
    ajax.php:56 parsererror 
    ajax.php:57 SyntaxError: Unexpected token h in JSON at position 0 
    at JSON.parse (<anonymous>) 
    at parseJSON (jquery-1.6.4.min.js:2) 
    at b$ (jquery-1.6.4.min.js:2) 
    at w (jquery-1.6.4.min.js:4) 
    at XMLHttpRequest.d (jquery-1.6.4.min.js:4) 

あなたが見ることができるように応答テキストは、サーバーが戻って送信しているものです。 私はhttpd.confを修正してmod_headers.cを有効にし、.htaccessを追加しなければなりませんでした。

更新2:

解析エラーの原因を突き止めました。私はプリント「こんにちは!」を持っていました。他のトラブルシューティングのために私がそこに持っていた私のサーバー側ファイルの行。かつて私はそれを削除し、投稿されたサーバー側のコードのみを持っていた。今はすべてがピーチです。次へ!

+0

'receive.php'は何を返しますか?ファイルの内容(生のPHP)? – Nenroz

+0

ブラウザでコンソールをポップアップし、サーバーからの応答を確認します。これはおそらく、デフォルトで許可されていないクロスオリジンの投稿をしようとしているようなものに答えるでしょう... [こちらを見てください](https://enable-cors.org/server_php.html) _could_ resolve this ... –

+0

コンソールに何もありません。私はNO ACCESS-CONTROL-ORIGINエラーを修正するためにコンソールを使用しましたが、それ以降はエラーは発生しませんでした。 – user1794918

答えて

-1

私が正しく理解している場合あなたは別のドメインにajaxリクエストを行いたいと思います。 Same origin policyのためにブロックされています。あなたの目標を達成するために実装することができますJSONP

関連する問題