我的web服务器在http://localhost:3000
上,但是我的API服务器在http://localhost:3001
上。因此,与其像这样为我的所有请求加上前缀,不如:
var root = 'http://localhost:3001';
$http.get(root+'/')...
..。如何将http://localhost:3001
设置为所有传出$http
请求的缺省值?我试着看默认转换,但无法理解。
编辑:在更仔细地阅读文档之后,我不太自信(但仍然不确定)如何处理这个问题。您似乎可以操作头和数据,但不能操作url。
编辑2:两个答案推荐使用全局函数/变量。这是可行的,但会导致CORS错误。
发布于 2015-08-03 01:23:02
取决于您是否从一个js文件或跨多个js文件执行请求,您可以选择
//Create 2 global variables first outside the function then just use the
// var name when needed
var web = "http://localhost:3001";
var api = "http://localhost:3000";
或者,如果您需要跨多个js文件执行请求,可以创建函数来返回每个var,然后在需要时调用它们。只需记住,需要先加载带有函数的文件。
function web() {
return "http://localhost:3001";
}
function api() {
return "http://localhost:3000";
}
所以那会是
$http.get(api + '/')...
或
$http.get(api() + '/')...
编辑:更新您的附加问题
POST请求正在由浏览器预置选项请求,如果没有得到批准,它将不会向服务器发送真正的请求,这是预期的COR行为小时,在COR文档中有更详细的信息。
有几种方法可以解决这个问题,但是一种常见的方法是在请求中添加一个标头:
var url = 'http://localhost:3001/users',
user= { 'someKey': 'some value' },
config = {
headers: {
'Content-Type': 'text/plain'
}
}
};
$http.post(url,user,config);
发布于 2015-08-03 01:03:23
您可以编写一个全局函数来处理前缀,例如
function p(uri) {
return "http://localhost:3001" + uri;
}
...
$http.get( p('/') );
https://stackoverflow.com/questions/31778096
复制相似问题