【问题标题】:How does POST request work with relative path in jQuery?POST 请求如何与 jQuery 中的相对路径一起工作?
【发布时间】:2016-01-07 07:17:22
【问题描述】:

我正在分析一个 HTML 页面的代码,看到页面加载时,会有一个 POST 请求,如下所示:

$.post('/video_info/html5',{v:video_id},function(data){
    //it does something here with data    
},'html');

页面 URL 的格式为:https://example.com/watch?v=123#video=456。 那么,我试图使用 Postman 向 https://example.com/video_info/html5 发送一个带有参数 v = video_id 的 POST 请求(例如:The_Lord_of_the_Rings_2002),但是它没有得到任何响应,而上面的代码可以得到它(我用firebug,可以看到响应)。

网址有问题吗:https://example.com/video_info/html5

【问题讨论】:

  • URL 本身没有问题,但是您不能使用 JavaScript 向外部域发出 AJAX 请求。可以感谢Same Origin Policy
  • 回复是succeed?
  • @anmarti 是的,回复是succeed
  • 如果你从控制器返回一个Json,你应该使用data.YourField得到响应
  • $.post 发出 AJAX 请求

标签: javascript jquery html post postman


【解决方案1】:

网址有问题吗:https://example.com/video_info/html5

不,这是post (ajax) 调用中的 URL 相对于您描述的页面 URL 的正确分辨率。

ajax 请求带有标头等,这可能使它们看起来与其他请求不同。有问题的站点也可能正在查看referer(原文如此)和/或保持服务器端跟踪页面 X 刚刚从 IP 1.2.3.4 加载的事实,因此可以回复视频请求.

人们有时会竭尽全力保护他们的内容不被使用,除非以他们希望的方式使用。

【讨论】:

  • 有没有办法从域外发送这样的 POST 请求以获得相同的结果?
  • @MrCold:从服务器,是的,(几乎)任何东西都可以被欺骗。从浏览器,可能不会,您可能会遇到Same Origin Policy
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-10-16
  • 1970-01-01
  • 2018-06-04
  • 1970-01-01
  • 2020-02-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多