سؤال

أحاول الاستيلاء على بعض JSON من خدمة Apple iTunes JSON. الطلب بسيط:http://ax.phobos.apple.com.edgesuite.net/webobjects/mzstoreservices.woa/wa/wssearch؟term=jac&limit=25.

إذا قمت بزيارة عنوان URL في متصفحك، فسترى بعضا جيدا (مدعومة من قبل JSONLINT.COM) JSON. عندما أستخدم JQuery التالية لإجراء الطلب، ومع ذلك، لا يجد الطلب شيئا:

        $("#soundtrack").keypress(function(){
            $.getJSON("http://ax.phobos.apple.com.edgesuite.net/WebObjects/MZStoreServices.woa/wa/wsSearch",{'term':$(this).val(), 'limit':'25'}, function(j){              
                var options = '';
                for (var i = 0; i < j.results.length; i++) {
                    options += '<option value="' + j.results[i].trackId + '">' + j.results[i].artistName + ' - ' + j.results[i].trackName + '</option>';
                }
                $("#track_id").html(options);
            });
        });

يرى Firebug الطلب، ولكن يتلقى فقط استجابة فارغة.

سيكون موضع تقدير أي مساعدة هنا، وأنا في نهاية بلدي في محاولة لحلها. يمكنك عرض البرنامج النصي هنا:http://rnmtest.co.uk/gd/drives_admin/add_drive. (SoundTrack الإدخال في أسفل الصفحة).

شكرًا

هل كانت مفيدة؟

المحلول

من أجل القيام بطلبات عبر المجال، سيحتاجك إلى استخدام JSONP. هذا قد يساعد:

$.ajax({
  url: "http://ax.phobos.apple.com.edgesuite.net/WebObjects/MZStoreServices.woa/wa/wsSearch",
  dataType: 'jsonp',
  data: {'term':$(this).val(), 'limit':'25'}, 
  success: function(j){              
    var options = '';
    for (var i = 0; i < j.results.length; i++) {
      options += '<option value="' + j.results[i].trackId + '">' + j.results[i].artistName + ' - ' + j.results[i].trackName + '</option>';
    }
    $("#track_id").html(options);
  }
});

نصائح أخرى

أو قمت ببساطة بتغيير عنوان URL قليلا. من عند

http://ax.phobos.apple.com.edgesuite.net/.../wa/wsSearch"

ل

http://ax.phobos.apple.com.edgesuite.net/.../wa/wsSearch?callback=?"

والحفاظ على استخدام $.getJSON بدلا من التحول إلى $.ajax

من JQuery.getjson الوثائق

إذا كان عنوان URL يتضمن السلسلة "callback=?" في عنوان URL، يتم التعامل مع الطلب jsonp. في حين أن.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top