使用Primefaces在safari中使用Jquery ajax $ .post()方法

时间:2012-02-11 00:44:40

标签: javascript jquery ajax post primefaces

jquery ajax $.post()方法在Safari 3.2.3(525.29)或其他方法中有效吗?

当用户在输入上输入时,我试图动态地获取一些信息,但它似乎不起作用。

此外,在其他Safari版本中(我刚刚在第5版上测试过),这种方式也很好,还有IE和其他版本。

有没有人可以向我确认这个,或者向我提供有关$.post()使用Safari的更多信息,或者有关jquery库的信息或问题,可以使用这些来自主要方面吗?

我将非常感谢您的意见。

EDITED

我正在使用带有primefaces的jquery库,我有以下内容,只是一个示例或代码片段:

// 1. I imported a base64.js that has this structure: (This .js is obfuscated for security)

// methods situated at base64.js
var key = "b3NjYXJqY";


    function base64key(){
        this.key = function(){
            return key;
        };
    }

function decrypt(val){
    //method that just plays with the string passed in the parameter (val)
    return decryptedString;
}

/****************************************************************************/
/* 2. Data returned in the callback is an encrypted json from java servlet. */
/****************************************************************************/

// value from my input
var identifier = $('#txtid').val();

$.post('MyServlet', {identifier : identifier} , function(data) {

    // MyServlet returns 0 if no data, else returns an encrypted json as base64 generated with a key.
    if (data != 0) {

        // base64key() is a method from base64.js that just return a key (like b3NjYXJqY)
        var b = new base64key();

        // variable that contains encrypted json as string
        var temp = data.replace(b.key().substring(5), '');

        // decrypt the json (temp variable)
        var json = decrypt(temp).replace(b.key(), '');

        // parse the json string
        var info = JSON.parse(json);

        // fill the inputs with data
        $('#txtname').val(info.name);
        $('#txtemail').val(info.email);
        $('#txtphone').val(info.phone); 
});

/**********************************************************************************/
/* 3. Just to have an idea of the "data" structure, this is the decrypted json.   */
/**********************************************************************************/
{"name": "Oscar Jara", "email": "oscar@stackoverflow.com", "phone": "+45 88779900"}

1 个答案:

答案 0 :(得分:0)

我会回答我自己的问题......

问题不在于jQuery POST,问题是JSON与某些浏览器完全不兼容,请看一下:

http://caniuse.com/json

我遇到了Safari的错误,并且在开发人员的控制台中出现了类似的错误“JSON变量无法被识别”。

要解决此问题,您需要使用名为json2.js的库,该库非常有效。 在这里,您可以找到文档和下载:

https://github.com/douglascrockford/JSON-js