首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用http://localhost:3001?对所有$http请求进行前缀

如何使用http://localhost:3001?对所有$http请求进行前缀
EN

Stack Overflow用户
提问于 2015-08-03 00:58:59
回答 2查看 636关注 0票数 1

我的web服务器在http://localhost:3000上,但是我的API服务器在http://localhost:3001上。因此,与其像这样为我的所有请求加上前缀,不如:

代码语言:javascript
运行
复制
var root = 'http://localhost:3001';
$http.get(root+'/')...

..。如何将http://localhost:3001设置为所有传出$http请求的缺省值?我试着看默认转换,但无法理解。

编辑:在更仔细地阅读文档之后,我不太自信(但仍然不确定)如何处理这个问题。您似乎可以操作头和数据,但不能操作url。

编辑2:两个答案推荐使用全局函数/变量。这是可行的,但会导致CORS错误。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-08-03 01:23:02

取决于您是否从一个js文件或跨多个js文件执行请求,您可以选择

代码语言:javascript
运行
复制
//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,然后在需要时调用它们。只需记住,需要先加载带有函数的文件。

代码语言:javascript
运行
复制
function web() {
    return "http://localhost:3001";
}

function api() {
    return "http://localhost:3000";
}

所以那会是

代码语言:javascript
运行
复制
$http.get(api + '/')...

代码语言:javascript
运行
复制
$http.get(api() + '/')...

编辑:更新您的附加问题

POST请求正在由浏览器预置选项请求,如果没有得到批准,它将不会向服务器发送真正的请求,这是预期的COR行为小时,在COR文档中有更详细的信息。

有几种方法可以解决这个问题,但是一种常见的方法是在请求中添加一个标头:

代码语言:javascript
运行
复制
var url = 'http://localhost:3001/users',
    user= { 'someKey': 'some value' },
    config = {
        headers: {
            'Content-Type': 'text/plain'
        }
   }
};

$http.post(url,user,config);
票数 1
EN

Stack Overflow用户

发布于 2015-08-03 01:03:23

您可以编写一个全局函数来处理前缀,例如

代码语言:javascript
运行
复制
function p(uri) {
    return "http://localhost:3001" + uri;
}

...

$http.get( p('/') );
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31778096

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档