0

html ファイルがサーバーにアップロードされていない場合、以下のコードが「エラー」を返すのは正常ですか? もしそうなら、なぜですか? ただし、サーバーにアップロードすると完全に機能します...

<head>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script>
        function validate() {

                    $.ajax({
                        type:'POST',
                        url:'http://www.mywebsite.com/formvalidate.php',
                        data:{

                        },
                        dataType:'json',
                        success:function (data) {
                            alert('success');


                        },
                        error:function (XMLHttpRequest, textStatus, errorThrown) {
                            alert('error');
                        }
                    });

                }
</script>
</head>
<body>
<input type=button onclick="validate();" value="Click me"/>
</body>
4

3 に答える 3

2

jquery ajax呼び出しでタイプを使用すると、 「同じサイトオリジンポリシー」を回避できるためです。 あなたの場合、サーバー側とクライアント側をオーサリングしているので、できます。jsonp

于 2013-08-07T14:50:20.033 に答える
1

その理由は、クロス ドメイン ajax が許可されていないためです。ブラウザーまたはローカル ホストからこのファイルを実行していたときに、許可されていない ajax 呼び出し用の別の Web サイト URL にヒットしていました。

しかし、同じサーバーにアップロードした場合、クロスドメインの問題はなかったため、成功メッセージが表示されました

クロスドメイン ajax 呼び出しを許可するには、JSONP を使用する必要があります

$.ajax({
     url:"testserver.php",
     dataType: 'jsonp', // Notice! JSONP <-- P (lowercase)
     success:function(json){
         // do stuff with json (in this case an array)
         alert("Success");
     },
     error:function(){
         alert("Error");
     },
});

参照:- jQuery AJAX クロス ドメイン

于 2013-08-07T14:50:33.170 に答える