为什么使用jquery的post方法,提示找不到文件[NOT FOUND],换成GET方法就可以?

huagushe 2016-10-20 05:56:46
$.ajax({
type:"POST",
url:"/data/json/data1.json",
dataType:"json"
});


使用jquery的ajax的post方法处理数据,提示找不到文件,捣鼓了一个下午,也找不到问题,无意中把数据提交的方式改成GET,竟然可以提交处理成功。证明url的路径是正确的。可是为什么使用POST方法会找不到文件呢?求大神解答~

...全文
725 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
huagushe 2016-10-22
  • 打赏
  • 举报
回复
整理下之前的问题描述~~~~ 前端测试环境是gulp搭建的。 WEB服务是运行gulp serve后,browserSync启的WEB SERVER。 运行以下代码: $.ajax({ type:"POST", url:"/sf/app/data/json/data.json", dataType:"json", success:function(){ console.log('POST'); } }); /sf/app/data/json/data.json是一个纯静态的JSON文件。 运行后提示找不到文件[NOT FOUND],无意间把POST,换成GET,运行成功。 我又换了个web server测试,使用WAMP server。使用POST和GET,都运行成功。 我怀疑是不是browserSync启的web server不支持POST方法呢?在它的官网上找了半天也没找到答案。 这到底是什么原因呢?请大神解答~
huagushe 2016-10-21
  • 打赏
  • 举报
回复
引用 1 楼 qq_29594393 的回复:
post 会对提交的字段进行编码,而get 是原文提交,也就是不做任何变化,编码的话,会出现编码格式不一致的情况,也就是乱码,自然就会找不到文件,这是我的猜测,应该就是这个原因
全部英文,没有中文。
huagushe 2016-10-21
  • 打赏
  • 举报
回复
引用 2 楼 xiaofanku 的回复:
/data/json/data1.json 真是个静态的文件?只接受get,无法接受post 如果不是静态文件(URL重写后的地址),能不能接受取决于这个原始地址支持的request method
纯静态的。 { "employees": [ { "firstName":"Bill" , "lastName":"Gates" }, { "firstName":"George" , "lastName":"Bush" }, { "firstName":"Thomas" , "lastName":"Carter" } ] ,"leader": [ { "firstName":"Bill" , "lastName":"Gates" }, { "firstName":"George" , "lastName":"Bush" }, { "firstName":"Thomas" , "lastName":"Carter" } ] }
huagushe 2016-10-21
  • 打赏
  • 举报
回复
我的测试环境是gulp中使用的browserSync启的WEB SERVER ,只能使用GET,不能使用POST. 换成WAMP server,就没有问题啊,为什么?
huagushe 2016-10-21
  • 打赏
  • 举报
回复


根据提示找不到的json文件路径,直接拖入在浏览器就可以打开的。
huagushe 2016-10-21
  • 打赏
  • 举报
回复
引用 6 楼 xiaofanku 的回复:
[quote=引用 4 楼 huagushe 的回复:] [quote=引用 2 楼 xiaofanku 的回复:] /data/json/data1.json 真是个静态的文件?只接受get,无法接受post 如果不是静态文件(URL重写后的地址),能不能接受取决于这个原始地址支持的request method
纯静态的。 { "employees": [ { "firstName":"Bill" , "lastName":"Gates" }, { "firstName":"George" , "lastName":"Bush" }, { "firstName":"Thomas" , "lastName":"Carter" } ] ,"leader": [ { "firstName":"Bill" , "lastName":"Gates" }, { "firstName":"George" , "lastName":"Bush" }, { "firstName":"Thomas" , "lastName":"Carter" } ] }[/quote]哪只支持get[/quote] 感谢您的帮助 经测试,静态的json文件是可以支持POST的。 $.ajax({ type:"POST", url:"/sf/app/data/json/data.json", dataType:"json", success:function(){ console.log('POST'); } }); 运行成功的的web server是使用的是WAMP server, 但我开发时,开发环境是使用的运行gulp serve后,的browserSync启的WEB SERVER, 只能使用GET,不能使用POST.一直提示NOT FOUND
街头小贩 2016-10-21
  • 打赏
  • 举报
回复
引用 4 楼 huagushe 的回复:
[quote=引用 2 楼 xiaofanku 的回复:] /data/json/data1.json 真是个静态的文件?只接受get,无法接受post 如果不是静态文件(URL重写后的地址),能不能接受取决于这个原始地址支持的request method
纯静态的。 { "employees": [ { "firstName":"Bill" , "lastName":"Gates" }, { "firstName":"George" , "lastName":"Bush" }, { "firstName":"Thomas" , "lastName":"Carter" } ] ,"leader": [ { "firstName":"Bill" , "lastName":"Gates" }, { "firstName":"George" , "lastName":"Bush" }, { "firstName":"Thomas" , "lastName":"Carter" } ] }[/quote]哪只支持get
街头小贩 2016-10-20
  • 打赏
  • 举报
回复
/data/json/data1.json 真是个静态的文件?只接受get,无法接受post 如果不是静态文件(URL重写后的地址),能不能接受取决于这个原始地址支持的request method
当作看不见 2016-10-20
  • 打赏
  • 举报
回复
post 会对提交的字段进行编码,而get 是原文提交,也就是不做任何变化,编码的话,会出现编码格式不一致的情况,也就是乱码,自然就会找不到文件,这是我的猜测,应该就是这个原因

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧