jsonp, просто не работает .. всегда ошибка - PullRequest
0 голосов
/ 27 марта 2012

Я прочитал, прочитал и прочитал .. Я пытаюсь получить канал, за которым я следил, когда-либо последний ответ, который я могу Google. Я не понимаю, какие проблемы здесь, потому что firebug хорош в поиске и разборе проклятого JSON.

так что попробуйте один

var url='http://images.wsu.edu/javascripts/tracking/configs/pick.asp';
$.getJSON(url+'?callback=?', function(data){
    alert('true');
    $.jtrack({
        load_analytics:{account:GAcode},
        trackevents:data // this can be hard codded here or set do be feed in like so
        });
});

FAIL пока я вижу это в WTF?

так

var url='http://images.wsu.edu/javascripts/tracking/configs/pick.asp';
$.ajax({ 
  url: url, 
  cache: false,  
  dataType: 'jsonp',
  jsonp : "callback",
  success: function(data){ 
    alert('data');
    //data=jQuery.parseJSON(data);
    $.jtrack({
        load_analytics:{account:GAcode},
        trackevents:data // this can be hard codded here or set do be feed in like so
    });
  }, 
  error: function(e, xhr){ 
    alert('error');
    alert(e);
  } 
});

И снова FAIL ... так что ... я думаю, что ошибка покажет мне ... ничего ... так что ... давайте будем реальными и протестируем вывод, который он сам по себе, потому что, черт возьми, он находит URL, и я вызываю jsop и и и ... хорошо, давайте подтвердим выходную причину, несомненно, это проблема.

enter image description here

Так что ... ну, я не знаю ... Я ударил каждую чертову нить здесь из Бангкока. Кто-нибудь знает, что это за сделка?

Ответы [ 4 ]

1 голос
/ 27 марта 2012

Оформить заказ по этой ссылке: Пример JSON с использованием обратного вызова

Я думаю, что возвращаемому JSON необходимо поместить обратный вызов в возвращенный JSON. В приведенном выше примере он расположен спереди как:

CALLBACKVALUE([{"id":"4","name":"FICTION","parentid":"3","getfullname":"BOOKS > FICTION"},{"id":"5","name":"NON-FICTION","parentid":"3","getfullname":"BOOKS > NON-FICTION"})
0 голосов
/ 28 марта 2012

это оповещение "#null"

var url = 'http://images.wsu.edu/javascripts/tracking/configs/pick.asp';
$.getJSON(url + '?callback=?', function(data) {
  alert(data[0].element);
});

вот что возвращается:

callback([
    {
        "element":"#null",
        "options":{}
    },{
        "element":"a#hover",
        "options":{
            "category":"hover",
            "label":"function(ele){ return ( ($(ele).attr('title')!='' && typeof($(ele).attr('title')) !=='undefined' ) ? $(ele).attr('title') : $(ele).attr('href') ) }"
        }
    },{
        "element":"a[href$='.jpg'],a[href$='.gif'],a[href$='.png'],a[href$='.ppt'],a[href$='.pdf'],a[href$='.doc'],a[href$='.docx']",
        "options":{
            "category":"download",
            "label":"function(ele){ return ( ($(ele).attr('title')!='' && typeof($(ele).attr('title')) !=='undefined' ) ? $(ele).attr('title') : $(ele).attr('href') ) }"
            }
    },{
        "element":"a:not([href*='mailto('])",
        "options":{
            "category":"email"
            }
    },{
        "element":"a:not([href*='wsu.edu'])",
        "options":{
            "category":"outbound"
            }
    },{
        "element":"a[href*='wsu.edu']",
        "options":{
                "category":"internal",
                "noninteraction":"true"
            }
    }
])
0 голосов
/ 28 марта 2012

Просто заставьте pick.asp получить значение параметра callback url (теперь он называется <some string>), который генерируется jquery и отправляется как pick.asp?callback=<some string> на сервер.Затем используйте это значение, чтобы построить свой ответ следующим образом:

<some string>(<your json>);
0 голосов
/ 28 марта 2012

Я думаю, проблема в том, что вы не возвращаете контент JSONP - просто JSON.Вам необходимо добавить параметр callback к началу JSON, который вы сейчас обслуживаете, а также заключить его в скобки.например, вы в настоящее время возвращаете:

[{
    "element":"#null",
    "options":{}
 }, 
   ...
]

, и вам необходимо вернуть:

value_of_callback_param([{
    "element":"#null",
    "options":{}
  }, 
  ...
]);

Трейлинг ; является необязательным.См. эту ссылку , которая описывает, как она должна работать.

Кроме того, я думаю, что application/javascript следует использовать для типа контента вместо application/json, так как вы будете возвращать действительный JavaScriptвместо просто объекта / массива JSON.Кроме того, в документах jQuery для функции $.ajax указано, что обратный вызов error не должен вызываться для запросов JSONP.

...