2016-11-11 10 views
0

jQueryでajaxリクエストを実装しました。これはコードです:jQuery ajaxはChromeで動作しますが、FirefoxやSafariでは動作しません

//initialize value, nameValue, emailValue 

$.ajax({ 
    url: "getPOST.php", 
    type: 'POST', 
    data: { 
    'id': value, 
    'name': nameValue, 
    'email': emailValue 
    }, 
    success: function(response) { 
    console.log(response); 
    } 
}); 

コードはクロームで問題なく動作しますが、SafariとFirefoxでは正常に動作しません。私はこの質問にいくつかの答えを見ましたが、彼らは6歳以上です。この問題の修正方法は何ですか?

EDIT:私はPHP側では、FirefoxやSafariで実行するとデータベースに何も格納されませんが、Chromeでは期待通りに動作します。コンソールにエラーメッセージはありません。 Safariでのリクエストは赤色で表示され、データは送信されませんでした。

enter image description here

私はFirefoxでポストデータを検査し、それらがあるべきな彼らがしています。エラーはありません。リクエストは赤で塗られていますが。これは見た目です。 jQuery側のエラー?

enter image description here

私はPayPal支払いページにユーザーを向ける前に、私のサーバーにデータを送信するために、このコードを使用しています。

jQueryコード。私は多くの中括弧に削除しないことを願っています。コメントを

長いへ
// JavaScript Document 
    jQuery(document).ready(function($){ 
     //you can now use $ as your jQuery object. 



    //real stuff here 
    $(".submit-link").click(function(e){ 
    var value=$.trim($(".url-submit").val()); 

    if(value.length>0){ 
    value = encodeURIComponent(value); 
    var nameValue=$.trim($(".name-submit").val()); 
    var emailValue=$.trim($(".email-submit").val()); 

    if(nameValue.length>0){nameValue = encodeURIComponent(nameValue);} 
    if(emailValue.length>0){emailValue = encodeURIComponent(emailValue);} 


    $.ajax({ 
     url: "getPOST.php", 
     type: 'POST', 
     data: {"id":value,"name":nameValue, "email":emailValue}, 
     success: function(response) { 
    console.log(response); 
     } 


    //go to link in href now 
    }); 
     }else{ 
    var $urlSubmit = $('.url-submit'); 
     $urlSubmit.addClass('invalid'); 
     setTimeout(function(){ 
     $urlSubmit.removeClass('invalid'); 
     },500); 

    e.preventDefault(); 
     } 
    }); 


    //some other stuff 

    }); 
+0

それが失敗すると、何が起こりますか?表示されたスニペットで、ブラウザ間で不一致が発生することは何もありません –

+0

編集を追加しました.. – sanjihan

+1

ブラウザに開発ツールを開き、ブラウザにエラーが発生してコンソールにエラーメッセージがないかどうかを確認します。何かが見える場合は、問題を診断するのに役立ちますので、共有してください。編集:ちょうどそれがPHP側で失敗したと言った見た。ポストヴァールのようなものをエコー/ログアウトできますか?ネットワークタブを調べて、どの値がサーバーに送信されたかを確認することもできます。 – Dymos

答えて

1

得たが、jqueryのを除いて試してみて、それが動作するかどうかを確認するために、フェッチ/シンプルXHRをしてみてください(あなたがフェッチしようとした場合、多分あなたは他の分かりやすいエラーになります)

fetch('getPOST.php', { 
    method: 'POST', 
    headers: {'content-type': 'application/x-www-form-urlencoded; charset=UTF-8'} 
    body: 'id=0&name=bob&email=bob%40localhost' 
}).then(res => console.log(res)) 

(サファリを持っていないので、Firefoxで試してみてください)

私ができることは、あなたがクロスオリジンを投稿しているということだけです...あなたは同じドメインに投稿していますか?あなたのコードが有効であるネットワークエラー/制限である必要があります

+0

私が使っているサーバーはまだDNSに接続されていないので、IPアドレスを入力するだけです。 – sanjihan

+0

おそらくあなたが同じリクエストで完了した場合には、あなたをpaypalに転記しないようにしてください。 – Endless

+0

これは奇妙な動作の理由です。ありがとう! – sanjihan

関連する問題