forge.request.ajax返回:"无效参数不满足:url"

时间:2014-09-22 15:05:49

标签: ajax afnetworking trigger.io

我们有一个使用trigger.io构建的ios应用程序。此应用程序使用forge.request.ajax将数据发送到我们的服务器。我们的一个请求偶尔会抛出一个错误并返回:

{"message":"Invalid parameter not satisfying: url","type":"UNEXPECTED_FAILURE"}

由于输入参数是以json格式发送的,我怀疑用户输入的某些字符可能会破坏结构并导致此错误。我的代码看起来像这样:

    forge.request.ajax({
        url: "someurl.php",
        dataType: "json",
        data:"some=data&and=some&more=data&which=is inputted by user",
        success: function (data) {

        },
        error: function (error) {
            forge.request.ajax({
                url: "errorlog.php",
                dataType: "json",
                data:"data=" + encodeURIComponent(JSON.stringify(error)),
                success: function (data) {

                },
                error: function (error) {
                }
            });                     
        }
    }); 

此代码给出了上述错误的一半时间。并在另一半工作。 ajax请求中的输入参数是否有任何限制?因为我无法编辑objective-c代码,所以我需要一个解决方案 - 最好是一个过滤器 - 它可以确保这个函数适用于输入的任何输入。

1 个答案:

答案 0 :(得分:1)

使用encodeURIComponent可能有所帮助:

var data = "some=data&and=some&more=data&which=is inputted by user"; 
forge.request.ajax({
    url: "someurl.php",
    dataType: "json",
    data: encodeURIComponent(data)
    ...

将请求数据作为URL参数传递但是它的份额超过了它的份额,所以它也值得一看这个StackOverflow问题:When are you supposed to use escape instead of encodeURI / encodeURIComponent?