كيف يمكنني تحميل JSON خارجي من برنامج نصي على صفحة ويب؟

StackOverflow https://stackoverflow.com/questions/1126582

  •  13-09-2019
  •  | 
  •  

سؤال

أحاول تحميل البيانات من خارجي .js ملف، يحتوي على تمثيل JSON لمجموعة من البيانات. لا أستطيع أن أعتبر حياةني كيفية الوصول إلى البيانات داخل الصفحة. أنا متأكد من أن هذا أمر سهل حقا وأنا أفتقد شيئا بسيطا! الآن، أحاول هذا:

  $(document).ready(function(){
    $.getJSON("http://api.crunchbase.com/v/1/company/xobni.js",
        function(data){
            alert(data.company_url);
        });
  });

من الواضح أنه مخطئ للغاية، لأنه لا يحدث شيء. لقد حاولت تحميلها في <script> العلامة، لكن Firebug يخبرني أنه لم يحمل حتى. كيف يمكنني المسمار ذلك؟ على أي حال، أنا مستعد لسحب شعري، وأصدر أن هذا سيأخذ شخصا آخر حوالي 15 ثانية لمعرفة ذلك.

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

المحلول

لا يحتوي ملف البيانات هذا company_url دخول. بالإضافة إلى ذلك، .js يتم تقديم ملف مع text/javascript نوع mime، عندما ينبغي تقديمها application/json (أو application/x-javascript, ، تصحيح لي على ذلك).

السبب الحقيقي, بالطبع، هل تحتاج إلى إضافة ?callback=? إلى عنوان URL الخاص بك. ثم كل شيء سوف يعمل. لذلك، سوف تبدو مثل هذا:

$(document).ready(function(){
    $.getJSON("http://api.crunchbase.com/v/1/company/xobni.js?callback=?",
        function(data){
            alert(data.homepage_url);
        });
  });

نصائح أخرى

نظرت إلى بيانات JSON. يبدو أنه لا يوجد company_url. قد ترغب في homepage_url

$(document).ready(function(){
   $.getJSON("http://api.crunchbase.com/v/1/company/xobni.js",
      function(data){
             alert(data.homepage_url);
         });
   });

تبدو بخير للوهلة الأولى. هل أنت متأكد من أن الاستجابة صالحة JSON؟ هل نوع المحتوى غير صحيح، ربما؟ هو عنوان URL المصدر على بالضبط نفس المجال كما صفحتك؟ (بما في ذلك بروتوكول ورقم المنفذ)

تعديل:

قمت بتحميل JSON الخاص بك، وليس هناك خاصية "company_url".

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