0

jquery ajax を使用して一部のデータを取得していますが、失敗します。以下のコードは次のとおりです。

 $.Webpic_Init = function(){
        var type = 'default';
        $.ajax({
            url:SITE_PATH+"services/service.php?m=share&a=uploadwebpic&photo_type="+type,
            type: "POST",
            data:{ name: "John", location: "Boston" },
            cache:false,
            dataType: "json",
            success:function(result){
                alert(result);
            },
            error:function(){
                alert('error');
            }
        });
    }

これは「エラー」を警告します。しかし、url パラメーターを 'SITE_PATH+"services/service.php"' に変更すると、'success' イベントがディスパッチされました。url パラメータを変更したくない場合はどうすればよいでしょうか。

4

4 に答える 4

0

単なる提案ですが、$。ajaxSetup()を使用して、次のような正しいエラーを取得してみてください。

$(function() {
    $.ajaxSetup({
        error: function(jqXHR, exception) {
            if (jqXHR.status === 0) {
                alert('Not connect.\n Verify Network.');
            } else if (jqXHR.status == 404) {
                alert('Requested page not found. [404]');
            } else if (jqXHR.status == 500) {
                alert('Internal Server Error [500].');
            } else if (exception === 'parsererror') {
                alert('Requested JSON parse failed.');
            } else if (exception === 'timeout') {
                alert('Time out error.');
            } else if (exception === 'abort') {
                alert('Ajax request aborted.');
            } else {
                alert('Uncaught Error.\n' + jqXHR.responseText);
            }
        }
    });
});

これは、Ajaxエラーを適切に処理し、ajax呼び出し中に発生した正確なエラーを取得するのに役立ちます。

于 2013-01-28T13:36:39.893 に答える
0

/を追加する代わりに、URL の先頭に追加しますSITE_PATH。これにより、URL がドメインに対して相対的になります。つまり、www.your-domain.com/. サブフォルダー内にある場合は、次のservicesように実行できます/sub_folder_name/services/your_path_continue

于 2012-05-24T04:40:35.567 に答える
0
        var type = 'default';
        $.ajax({
            url: 'services/service.php',
            type: "POST", dataType: "json",
            data: { 'm': 'share', 'a': 'uploadwebpic', 'photo_type': type, 'typename': "John", 'location': "Boston" },
            //contentType: "application/json; charset=utf-8",
            cache: false,           
            success: function (data) {
                alert(result);
            }
        });
于 2012-05-24T06:39:45.350 に答える
0

POST リクエストを作成しています。すべてのフィールドは、作成したようにデータ オブジェクトにある必要があります。

data:{ name: "John", location: "Boston" }

URL には何も入力しないでください。以上がGETリクエストです。

于 2012-05-24T03:54:18.957 に答える