首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何正确地将URL参数添加到AJAX数据对象?

如何正确地将URL参数添加到AJAX数据对象?
EN

Stack Overflow用户
提问于 2016-02-12 08:23:20
回答 1查看 141关注 0票数 0

我有个奇怪的问题,我好像搞不清楚。我的应用程序使用AJAX访问JSON并检索数据。我正在使用平台的内置参数支持过滤categorytag。因此,我的格式(有效)如下所示:

示例(工作中):

代码语言:javascript
代码运行次数:0
运行
复制
$.ajax({
  url: "http://blog.squarespace.com/blog", 
  data: {format:"json",tag:"mobile"}, 
  dataType: "json", 
  method: "GET"
}).done(function(data){ console.log(data) });

记录的数据:

代码语言:javascript
代码运行次数:0
运行
复制
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数组,因为存在一个post。

当我点击使用多个单词或非字母字符的类别/标签时,问题就出现了。

AJAX请求示例(不起作用):

代码语言:javascript
代码运行次数:0
运行
复制
$.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

您只需在浏览器中访问以下网址即可确认此位置是否有帖子:http://blog.squarespace.com/?format=json&tag=Lee%20and%20Morris

在尝试调试之后,我还发现,通过添加tag参数并点击该URL,它可以按预期工作。

示例(工作中):

代码语言:javascript
代码运行次数:0
运行
复制
$.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对象时不能正常工作,而在其他情况下却可以正常工作?

EN

回答 1

Stack Overflow用户

发布于 2016-02-13 01:36:42

根据Felix King的评论,我的问题是由于jQuery为您编码数据对象字符串。通过简单地使用未编码的字符串执行请求,我的问题就解决了。

代码语言:javascript
代码运行次数:0
运行
复制
$.ajax({
  url: "http://blog.squarespace.com/blog", 
  data: {format:"json",tag:"Lee and Morris"}, 
  dataType: "json", 
  method: "GET"
}).done(function(data){ console.log(data) });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35352675

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档