2015-06-26 2 views
0

У меня есть JSON файл, давая от поставщикаJSON Разбитая на дисплее

{"html": "\n<link href=\"//apply.fundingoptions.com/static/msmclone/css/oembed-v3.css\" rel=\"stylesheet\">\n<script type=\"text/javascript\">\n var __raconfig = __raconfig || {};\n __raconfig.uid = '53302e56328ff';\n __raconfig.action = 'track';\n (function() {\n var ra = document.createElement('script');\n ra.type = 'text/javascript';\n ra.src = ('https:'==document.location.protocol?'https://':'http://')\n +'www.ruleranalytics.com/lib/1.0/ra-bootstrap.min.js';\n var s = document.getElementsByTagName('script')[0];\n s.parentNode.insertBefore(ra, s);\n }());\n</script>\n\n<div id=\"oembed-widget-container\" class=\"oembed-widget-container\">\n <div class=\"callout\">Initialising Finance Finder...</div>\n</div>\n<script type=\"text/javascript\">\n \n  var widget_affiliate_id = 10;\n \n \n  var widget_continue_url = \"//apply.fundingoptions.com/continue/\";\n \n \n  var widget_submission_url = \"//apply.fundingoptions.com/oembed/submit/\";\n \n \n  var widget_match_url = \"//apply.fundingoptions.com/match/\";\n \n \n  var widget_title = \"Your funding options\";\n \n</script>\n<script src=\"//apply.fundingoptions.com/static/oembed/oembed-v4.js\"></script>\n\n", 
    "title": "Funding Options Finance Finder", 
    "version": 0, 
    "type": "rich", 
    "width": 500, 
    "height": 400 
    } 

и я разборе его на веб-странице с помощью этого метода

$.ajax({ 
     type: 'GET', 
     url: 'json/data.json', 
    data: { get_param: 'value' }, 
    dataType:'json', 
     success: function (data) { 
      var names = data 
      $('#summary').html(data.html); 
     } 
    }); 

Но в конце концов, его шоу что-то вроде что на веб-странице: enter image description here

как я реализую его в первый раз, я не уверен, что его плохой или json поврежден или что еще.

ответ

0

Похоже, что это проблема совместного использования ресурсов Cross Origin.

https://en.wikipedia.org/wiki/Cross-origin_resource_sharing

Проверьте консоль браузера и посмотреть на ошибки вы получаете, когда вы пытаетесь загрузить страницу. Надо сказать, что-то похожее на:

XMLHttpRequest cannot load http://apply.fundingoptions.com/match/. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.

Поскольку данные вы запрашиваете не на том же сервере, как вы вы в настоящее время запрещен доступ.

Похоже, что ошибка происходит, когда следующий запрос сделан в oembed-v4.js библиотеки:

jQuery.ajax({ url: that.match_url, type: 'POST', data: postData, success: function(data, textStatus, jqXHR) { that.data = data; if (data['next_question'] == null) { that.showActions(); that.$spinnerElement.removeClass('fa-cog'); that.$spinnerElement.addClass('fa-check'); } else { that.drawQuestion(); } }, error: function(jqXHR, textStatus, errorThrown) { that.displayError(); }, complete: function() { that.toggleSpinner(false); } });

Поставщик может понадобиться для того, чтобы Cross Origin Resource Sharing на их конце от Вашего домен.

+0

Привет, я сомневаюсь, что похоже, что JSON размещен локально. –

0

Вот рабочий пример вызова JQuery Ajax:

$.ajax({ 
    url: 'https://jsonplaceholder.typicode.com/posts/1', 
    dataType:'json', 
     success: function (resp) { 
      console.log(resp) 
      var names = resp.title 
      $('#summary').html(names); 
     }, 
     error: function (resp) { 
      console.log('error') 
     } 
    }); 

Вы можете редактировать это в соответствии с вашими данными. Убедитесь, что URL-адрес является правильным, вы можете попробовать:

'./json/data.json' 

Вы JSON разобран правильно в соответствии с: https://jsonlint.com/

Так должно быть URL.

Смежные вопросы