2016-10-22 13 views
-2

私は負の点がたくさんあると思いますが、この点については説明できません。 localhost/mycall.php出力があってもAjaxは戻ってこない場合があります

このエンドポイントでのPHPコードは秒の乱数はその後、JSONデータを返す眠る:

は、URLがあります。

このエンドポイントをブラウザ経由で直接呼び出すと、常に動作しますが、AJAX経由で次のように呼び出すと、document.readyという呼び出しが行われます。

$.ajax({ 
    method: 'POST', 
    url: '/mycall.php?' + new Date().getTime() + Math.random(1, 99999), 
    data: dataToSend, 
    success: function(data) { 
     console.log('success'); 
     console.log(data); 
    }, 
    error: function(jqXHR, textStatus, errorThrown) { 
     console.log('error'); 
     console.log(textStatus); 
    }, 
    complete: function(jqXHR, textStatus) { 
     console.log('complete'); 
     console.log(textStatus); 
    } 
}); 

データはなくしばらくしてから戻り、コールバックは一切発生しません。 これはOpera、Chrome、最新のFirefoxでも発生します。なぜこれが当てはまるのでしょうか?

"Content-Type": "text/plain; charset = utf-8"ヘッダーが出力されています。

+1

PHPコード –

+0

を参照する必要があります。JavaScriptでは、現在のページが取得されたホストとは異なるホストにajaxリクエストを行うことはできません。 Javascriptを含むページはPHPと同じドメインにありますか、それとも単なるローカルファイルですか? – Fraser

+0

コンソールで同じ起源の警告が表示されないのですか? – adeneo

答えて

1

urlに問題があるようですが、localhostと書いてはいけないのでしょうか?

1

これと同じことがよく起こります。しかし、私がこの問題を見るとき、私がデータformateを定義すると、来る応答が正しいjson formateにあることを確認します。 その後、jsonを正しくエンコードした後。問題は解決する。 私は実際にあなたと何が起こっているのか分かりません。これがあなたに役立つかもしれません。

+0

出力は「Content-Type」です: "text \/plain; charset = utf-8 "ヘッダー、これは問題だろう...? –

1

あなたのURLの先頭には、/とする必要があります。それがなければ、それは相対的な道として扱われます。

+0

もちろんこれを相対パス(/mycall.php)と一緒に使用します。 –

関連する問題