防止$ .ajax编码正斜杠

时间:2014-12-31 18:53:58

标签: jquery ajax

我有一个我正在使用的API,他们希望某个参数为/on//off/。如果我使用标准jQuery $.ajax,它会编码为%2Fon%2F,但在API上失败。由于我无法访问API以进行解码,因此如何防止jQuery对斜杠进行编码?

API使用GET,这是一个示例调用:

$.ajax({
    url: "api.website.com",
    data: {id: id, stuff: stuff, device: device},
    type: "GET",
    dataType: "html"
})

1 个答案:

答案 0 :(得分:2)

jQuery会尝试对查询字符串进行编码,因为就是你应该做的。所以那些/字符将被编码。唯一的解决方法是自己构建一个追加到url的查询字符串。幸运的是,或者可能不是,您实际上只需要对具有违规字符的参数执行此操作(在您的示例中为stuff):

$.ajax({
    url: "http://api.website.com?stuff=" + stuff,
    data: {id: id, device: device},
    type: "GET",
    dataType: "html"
})