如何正确地将 URL 参数添加到 AJAX 数据对象
How do you properly add URL parameters to an AJAX data object?
我遇到了一个奇怪的问题,我似乎无法弄清楚。我的应用使用 AJAX 来命中 JSON 并检索数据。我正在使用平台的内置参数支持过滤category
和tag
。所以我的格式(有效(看起来像这样:
示例(工作(:
$.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
对象时这不起作用,但在其他方面工作正常?
根据Felix King的评论,我的问题是由于jQuery为您编码数据对象字符串。通过简单地使用未编码的字符串执行请求,我的问题得到了解决。
$.ajax({
url: "http://blog.squarespace.com/blog",
data: {format:"json",tag:"Lee and Morris"},
dataType: "json",
method: "GET"
}).done(function(data){ console.log(data) });
相关文章:
- React ajax数据集成
- 使用jQuery发布的AJAX数据包含引号
- 如何将Ajax数据值分配给PHP变量
- 使用外部ajax数据PHP绘制图表
- 如何打印AJAX数据
- AJAX数据包含一个或多个单词.
- 将Ajax数据发布到PHP REST服务
- AJAX 数据响应 - 如何解析 html
- 将 Ajax 数据分配给全局变量时出现问题
- 按钮在第一次成功的 ajax 数据加载后不起作用
- Javascript / JQuery循环访问已发布的ajax数据字符串以为其分配新值
- 发送的 Ajax 数据不起作用
- Jquery 工具提示未随 AJAX 数据加载一起显示
- Ajax获取数据以获取另一个Ajax数据
- 如何安全地依赖现有的Ajax数据
- 如何将jquery ajax数据提取为html
- 自定义AJAX数据类型
- 如何将ajax数据发送到rails 3.jQuery正在转义字符串
- jQuery AJAX数据参数
- Laravel 4:通过控制器操作ajax数据