1

クロムとサファリでは、次のコードが正常に機能します。

firefoxすべてのプラットフォーム、すべてのバージョンで、それは機能せず、オブジェクトが(jQueryから)未定義であるというエラーをスローして$.eachループで停止します

このコードは、AJAXを介してjson Webサービスを呼び出し、JSONを返します。

アイデア?

コード

 $.ajax({
    url: "URL GOES HERE",
    data: JSON.stringify({
        "geoNear": "geotestnew",
        "near": [-73.78086565, 41.014072],
        "maxDistance": 0.3
    }),
    type: "POST",
    crossDomain: true,
    contentType: "application/json",
    success: function(data) {
        var usthis = data.results;
        $.each(usthis, function(entryIndex, entry) {
            var newdis = this.dis * 69;
            $("#results").append('<br>');
            $("#results").append(newdis);
            $("#results").append('<br>');
            $("#results").append(this.obj.Name);
            $("#results").append('<br>');
        });
    },
    error: function(x, e) {
        $('body').html('error: ' + e);
    }
});
});​
4

2 に答える 2

1

dataTypejQueryにどのタイプの応答を期待するかを知らせるためのajaxオプションを設定していません

   dataType:'json' // or 'jsonp' which it appears you may be using

http://api.jquery.com/jQuery.ajax/

于 2012-06-25T13:12:32.310 に答える
0

ここでいくつか間違っていることがわかります。

  1. dataTypeが設定されていません。返されるデータの形式は、dataTypeプロパティによって決定されます。
  2. crossDomainをtrueに設定していますが、クロスドメインリクエストに必要な「jsonp」ではなく「json」のcontentTypeを使用しています。
  3. データ型としてjsonを使用する場合、私は常にdata.d成功メソッドではなくを使用していましたdata.results

ローカルのjsonajaxリクエストに使用したコードは次のとおりです。

    $.ajax({
        type: "POST",
        url: "/Svcs.asmx/GetStateProvOptions",
        dataType: "json",
        data: "{ 'countryID': '" + countryID + "' }",
        contentType: "application/json; charset=utf-8",
        success: function (data) {
            var result = data.d;
            var options = [];
            options.push('<option value="0" selected="selected">All</option>');
            for (var i = 0; i < result.length; i++) {
                options.push('<option value="', result[i].ID, '">', result[i].Value, '</option>');
            }
            $('.ddl').html(options.join(''));
        },
        error: Ajax_Error
    });

詳細については、 $。ajaxドキュメントも確認してください。

そしてここに説明があります:http data.d//encosia.com/never-worry-about-asp-net-ajaxs-d-again/

于 2012-06-25T13:13:27.800 に答える