当我尝试运行http请求时遇到问题我的NodeJS应用程序出于某种奇怪的原因决定将我的域添加到我在http请求中设置的URL。我如何确保不会发生这种情况?
我尝试搜索类似的问题,但没有找到。可能是我不确定实际搜索的内容。
以下是我想要运行的内容:
$.ajax({
url: 'xxx.xxx.xxx.xxx',
type: 'PUT',
headers: {
'value': 'value',
'value2': 'value2'
},
success: function(result) {
// extra code...
}
});
这就是请求中发生的情况,如从控制台中看到的那样:
$.ajax({
url: 'http://localhost:8080/xxx.xxx.xxx.xxx', // (added localhost)
type: 'PUT',
headers: {
'value': 'value',
'value2': 'value2'
},
success: function(result) {
// extra code...
}
});
值得注意的是(也许)如果我将http://添加到我的请求URL,它在运行时不会改变,但是不接受该URL。此请求将在客户端运行,即在浏览器中运行。
答案 0 :(得分:0)
这是绝对网址和相对网址之间的差异。没有协议的网址被视为相对网址,因此会发生以下情况。
相对网址:user / 1
当前位置:http://google.com/products
结果:http://google.com/products/user/1
或
相对网址:/ user / 1
答案 1 :(得分:0)
你的URL不是一个有效的URL,因为它缺少一个方案,也可能缺少其他位,所以ajax正在猜测你的意思。
ajax()的默认设置是查询当前页面http://localhost:8080,并将您提供的内容作为该页面上的路径。
请改为尝试:
url:'http://xxx.xxx.xxx.xxx',
答案 2 :(得分:0)
如果xxx.xxx.xxx.xxx
是其他网站的网址,则必须指定协议,否则xxx.xxx.xxx.xxx
将被解释为相对路径。
通常,这也适用于src
属性(适用于img
,srcipt
和iframe
...)。除非指定协议,否则页面中的任何链接都将被视为相对路径。
例如:(仅用于解释)在Windows上如果你有一个像some\thing
这样的路径,它将相对于你试图访问它的地方(绝对路径在哪里)您尝试访问它将自动添加到路径some\thing
)。但是如果您的路径是C:\some\thing
,那么无论访问何处,路径都将始终相同。协议以类似的方式工作。