此Ajax调用似乎有一个奇怪的问题:
$.ajax({
type : "GET",
data : searchParams,
dataType: "json",
// handle a successful response
success : function(json) {...}
这是结果浏览器网址:
http://localhost:8000/discover?event_search=gfgd&event_filter=&event_timeselect=&event_start_date=&event_end_date=&event_free_admission=False&event_after_five=False&event_kid_friendly=False&event_no_underage=False&event_location=BOUNDS%3A%2060.672585355151256%20-73.55389374789888%2018.26993602652665%20-121.01483124789888&search_type=Event
这是我的服务器看到的内容:
[11/Jul/2018 14:23:09] "GET /discover?event_search=gfgd&event_filter=&event_timeselect=&event_start_date=&event_end_date=&event_free_admission=False&event_after_five=False&event_kid_friendly=False&event_no_underage=False&event_location=BOUNDS%3A%2060.672585355151256%20-73.55389374789888%2018.26993602652665%20-121.01483124789888&search_type=Event&event_search=gfgd&event_filter=&event_timeselect=&event_start_date=&event_end_date=&event_free_admission=False&event_after_five=False&event_kid_friendly=False&event_no_underage=False&event_location=BOUNDS%3A%2061.31466023609533%20-73.43351449880555%2019.522712232892687%20-120.89445199880555&search_type=Event HTTP/1.1" 200 107
如果我打印searchParams
到控制台,它可以正确显示每个变量的一个实例,但是我坚决地发现每个变量都有两次。
是什么原因造成的?
答案 0 :(得分:1)
从注释中,当您使用已包含参数的url进行GET时,如果给jQuery提供更多数据,它将把这些数据添加到查询中,而不是替换原始数据。在这种情况下,由于没有提供网址,因此它正在获取页面的网址。
要解决此问题,如果您知道网址,则可以不使用参数对网址进行硬编码。否则,您可以尝试将网址设置为window.location.origin + window.location.pathname
。这似乎是在构建不带参数的网址。
例如,当我查看此页面时,我的浏览器网址是
https://stackoverflow.com/questions/51294378/ajax-doubling-get-data-in-single-request/51294746#51294746
但是在控制台打印中使用该行代码
"https://stackoverflow.com/questions/51294378/ajax-doubling-get-data-in-single-request/51294746"