0
我有一个奇怪的问题,我似乎无法弄清楚。我的应用程序使用AJAX命中JSON并检索数据。我使用该平台的内置参数支持过滤category
和tag
。所以,我的格式(工作)看起来是这样的:如何正确地将URL参数添加到AJAX数据对象?
例(工作):
$.ajax({
url: "http://blog.squarespace.com/blog",
data: {format:"json",tag:"mobile"},
dataType: "json",
method: "GET"
}).done(function(data){ console.log(data) });
记录的数据:
Object {website: Object, websiteSettings: Object, collection: Object, template: Object, shoppingCart: Object…}
calendarView: false
collection: Object
empty: false
emptyFolder: false
items: Array[1]
shareButtons: Object
shoppingCart: Object
showCart: false
tagFilter: "mobile"
template: Object
website: Object
websiteSettings: Object
__proto__: Object
上面,你可以看到它检索的items
阵列,因为一个职位存在。
当我击中使用多个单词或非字母字符的类别/标签时,问题就出现了。 AJAX请求
例(不工作):
$.ajax({
url: "http://blog.squarespace.com/blog",
data: {format:"json",tag:"Lee%20and%20Morris"},
dataType: "json",
method: "GET"
}).done(function(data){ console.log(data) });
Object {website: Object, websiteSettings: Object, collection: Object, template: Object, shoppingCart: Object…}
calendarView: false
collection: Object
empty: false
emptyFolder: false
shareButtons: Object
shoppingCart: Object
showCart: false
tagFilter: "Lee%20and%20Morris"
template: Object
website: Object
websiteSettings: Object
__proto__: Object
可以确认此位置,只需在访问URL在浏览器中有可用的帖子:http://blog.squarespace.com/?format=json&tag=Lee%20and%20Morris
尝试调试后,我我们还发现,通过附加标签参数并击中该URL,它可以按预期工作。
例(工作):
$.ajax({
url: "http://blog.squarespace.com/blog?tag=Lee%20and%20Morris",
data: {format:"json"},
dataType: "json",
method: "GET"
}).done(function(data){ console.log(data) });
calendarView: false
collection: Object
empty: false
emptyFolder: false
items: Array[1]
shareButtons: Object
shoppingCart: Object
showCart: false
tagFilter: "Lee%20and%20Morris"
template: Object
website: Object
websiteSettings: Object
__proto__: Object
所以我的问题是,为什么在地球上这种不使用data
对象时工作,但工作,否则罚款?
我相信jQuery默认编码值。如果你使用'data:{format:“json”,标签:“Lee and Morris”},'?会发生什么? –
“发送错误的代码”是什么意思? –
感谢Felix King,看起来就是这样。我正在检查我需要调整的问题。但是如果字符串已经被编码了,那应该不够好吗?我不太明白为什么会出现问题。 – jasonbarone