ошибка jquery? jsonp в сафари с объектами не работает

Я получаю «ошибку синтаксического анализа» с этой функцией, над которой я работаю. Я смог перегнать проблему в просто barebones:

function test(){
dataobject={firstname:"John's"};
 $.ajax({
    url: "http://archive.cyark.org/fieldapp.php",
    dataType: "jsonp",
    data: {
        action:"getprojects1",
        dataobject:dataobject
    },
    success: function(data){
        alert("sucess!")
    },
    error: function(req, status, err){
      alert("An error occurred, are you sure you\'re connected to the internet?");
    }
});
}

Чтобы воссоздать проблему, вам нужно быть в сафари. Кажется, что одиночная кавычка в отправляемом объекте проблематична. И это проблема только в jsonp.

Итак, две вещи: (1) что мне делать, чтобы решить эту проблему? В моих объектах может быть одна кавычка, и я должен это учитывать. И (2) это ошибка в jquery?


person Landon    schedule 01.09.2011    source источник
comment
[Проверьте ответ Олле по той же проблеме] [1]. [1]: stackoverflow.com/questions/1303297/   -  person Ahmed Atia    schedule 01.09.2011


Ответы (1)


olle отвечает на ту же проблему.
спецификации скажите, что в JSON вы можете использовать только двойные кавычки вокруг ключей и значений, поэтому попробуйте использовать двойные кавычки. Я уверен, что ваша ошибка будет решена.

вы можете использовать json.js для кодирования/экранирования специальных символов в фактических значениях, чтобы у вас не возникали проблемы со значениями, содержащими ", например. или метод stringify из http://www.json.org/js.html

person Ahmed Atia    schedule 01.09.2011
comment
ну, я не думаю, что это моя проблема. я только что отредактировал свой вопрос выше и заменил все одинарные кавычки двойными кавычками, за исключением одинарных кавычек в строке, которую я хочу отправить. это не помогло мне. не могли бы вы посоветовать, что мне нужно сделать? - person Landon; 02.09.2011