联系API时出现错误的URL编码
URL encoding giving errors when contacting API
我正在做一个学校项目,试图为《纽约时报》文章搜索API创建一个搜索功能。我对他们的一个搜索过滤器有问题,因为当我运行函数时,我得到了错误400,因为某种原因,它无法读取url编码。有趣的是,如果我用=替换所有的%3D,用&在我自己的URL中,它起作用,我可以看到API正确响应。
if($('#date1').is(':checked')) {date="day_of_week&begin_date=18500101&end_date=19000101";}
if($('#date2').is(':checked')) {date="day_of_week&begin_date=19000101&end_date=19500101";}
if($('#date3').is(':checked')) {date="day_of_week&begin_date=19500101&end_date=20000101";}
if($('#date4').is(':checked')) {date="day_of_week&begin_date=20000101&end_date=20150101";}
$.getJSON('http://api.nytimes.com/svc/search/v2/articlesearch.json',
{'api-key': 'XXXXXXXXXXXXXXXXXXXXXXX',
'fq': 'headline:("'+sogestreng.toLowerCase()+'")'+" AND "+finalSections,
'facet_field': date},
此代码返回"http://api.nytimes.com/svc/search/v2/articlesearch.json?api-key=XXXXXXXXXXXXXXXXXXXXXX;fq=标题%3A(%22dubai%22)+AND+section_name。包含%3A(/22Sports%2C+%22)&facet_field=星期%26begin_date%3D20000101%26end_date%3D50101"
而如果我手动替换url编码的最后一部分并在浏览器中打开它,我会得到我想要的结果。
我通过更改来做到这一点:
"&facet_field=星期%26begin_date%3D20000101%26end_date%3D50101"
至
"&facet_field=day_of_week&begin_date=200000101&end_date=20150101"
同样需要澄清的是,"fq"标准非常适用,它只是facet_field。
这怎么可能?有什么解决办法吗?
您正在将多个字段的描述塞进一个字段的值中。要获得您想要的结果,请尝试:
var begin_date, end_date;
if($('#date1').is(':checked')) {
begin_date = 18500101;
end_date = 19000101;
}
else if($('#date2').is(':checked')) {
// etc.
}
$.getJSON('http://api.nytimes.com/svc/search/v2/articlesearch.json',
{
'api-key': 'XXXXXXXXXXXXXXXXXXXXXXX',
'fq': 'headline:("'+sogestreng.toLowerCase()+'")'+" AND "+finalSections,
'facet_field': 'day_of_week',
'begin_date': begin_date,
'end_date': end_date
},
// ...
相关文章:
- 使用 POST 方法通过 ajax 发送的数据在发送到服务器之前是否必须进行 URL 编码
- PHP(PDO)url编码如何在javascript中解码?decodeURI?或解码URI组件
- 以 json 或 url 编码格式发送 js 模型
- 从函数调用控制器并向其传递 URL 编码参数
- PHP 通过 url 编码数据传递字符串
- 如何防止空格被 URL 编码为“javascript:”URL
- 将url编码的数据转换为JSON数组或js数组
- 从HTML5中URL编码的字符串中提取数据
- 我不知道如何写出URL编码的查询字符串
- xmlhttprequest中的url编码
- <输入类型='文件'>提供了URL编码的文件名,导致Android本机浏览器上的FileRea
- javascript中的Url编码
- Angular显示url编码错误,如何获得解码版本
- 最新的base64和url编码库
- 联系API时出现错误的URL编码
- 为什么对href属性使用url编码而不是html编码
- Ajax url编码问题
- Url编码的Javascript问题
- 我应该担心在form元素中使用GET不会;t自动对尖括号进行URL编码
- Node.js:由于URL编码的GET参数,导致外部资源的路径混乱