避免在Rest API中使用CORS

时间:2019-01-14 20:28:46

标签: ajax rest api cors

我在调用rest API时遇到问题。

在Web应用程序的文档(FAQ)中,有一个使用AJAX请求进行呼叫的示例。这里是一个例子:

var url = 'https://example.com/yyy';

$.ajax({
    type: 'POST',
    url: url,
    cache: false,
    data: {
        opt: JSON.stringify(example)
    },
    contentType: 'application/json; charset=utf-8',
    dataType: 'json',
    success: function (result)
    {
        console.log(result);
    } });

我用此代码创建了一个本地页面,以将其发布到位于远程服务器上的API,但是我收到有关CORS的错误。

是否有解决此问题的解决方案?我试图使用firefox插件来允许CORS,但是它不能解决问题。在使用端点之前,将通过表单对会话进行身份验证。

1 个答案:

答案 0 :(得分:0)

我看到了几个问题:

  1. 尝试从域而非本地磁盘运行代码(或者,您可以考虑使用https://crossorigin.me/
  2. 身份验证如何工作?如果使用cookie,则需要将withCredentials添加到ajax请求中。
  3. 确保API返回Access-Control-Allow-Origin: foo标头,其中foo是代码运行的域。如果还与凭据一起使用,则应添加Access-Control-Allow-Credentials: true