JSONP To Acquire JSON From HTTPS Protocol with JQuery

五迷三道 提交于 2019-12-05 18:03:44

问题


I'm trying to acquire a JSON which is being sent from an https secure site,

The client was hoping not to use any Server-side languages (the whole thing in Javascript)

I've read that I must use JSONP in order to load a JSON from a secure site, when using the .ajax function from Jquery.

My first question would be what format do I need to set this JSONP as? Right now my code looks like this:

html =new Object();
    html = $.ajax({
      url: "https://my-secure.net",
      async: false,
      dataType: 'jsonp'
     }).responseText;

//alert(html);       
  alert("myObject is " + html.toSource());
     console.log(html);

However, nothing is being alerted, nor is anything being logged in Firebug. Basically I want to be able to manipulate the JSON data. I see the data in the Response under Firebug, but there's an error which says "invalid label." I've read that in order to fix this you encase it in the eval function with extra parantheses but this is not working.

http://b.lesseverything.com/2007/10/25/invalid-label-error-when-eval-json

I also get an error which says my $.ajax request is "undefined" but I can see the data in the response. I suspect this has something to do with how I am grabbing the initial data. Any advice would be appreciated. Thank you!


回答1:


you can use getJSON for example

$.getJSON('ajax/test.json', function(data) {
  $('.result').html('<p>' + data.foo + '</p>'
    + '<p>' + data.baz[1] + '</p>');
});

check complete getJSON documentation http://api.jquery.com/jQuery.getJSON/

EDIT

I was wrong... using Jquery.ajax will cause cross-browser issue but not with Jquery.getJSON

http://docs.jquery.com/Release:jQuery_1.2/Ajax#Cross-Domain_getJSON_.28using_JSONP.29

Here is an example of cross-domain get JSON

EDIT

Firefox has a problem with HTTPS, as i know it will be fixed if you send your request like this

$.getJSON('ajax/test.json',{}, function(data) {
  $('.result').html('<p>' + data.foo + '</p>'
    + '<p>' + data.baz[1] + '</p>');
});

Source: AJAX https POST requests using jquery fail in Firefox

Hope this helps



来源:https://stackoverflow.com/questions/3780702/jsonp-to-acquire-json-from-https-protocol-with-jquery

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!