【问题标题】:'Access-Control-Allow-Origin' with jQuery getJSON [duplicate]带有jQuery getJSON的'Access-Control-Allow-Origin' [重复]
【发布时间】:2018-12-13 12:43:21
【问题描述】:

我知道关于 SO 的问题不乏CORS,但在这种情况下没有一个可以帮助我:

我想使用这个 jQuery sn-p 从本地主机后端获取 JSON 数据:

var SERVER_URL = "http://127.0.0.1:8080";

$.getJSON(SERVER_URL,function(result){
    console.log("result is", result);
  $.each(result, function(i, field){
    $("div").append(field + " ");
      });
    });

sn-p 被加载到index.html,它使用这个简单的节点静态文件服务器在http://localhost:3000/index.html 上运行:

var connect = require('connect');
var serveStatic = require('serve-static');
connect().use(serveStatic(__dirname)).listen(3000, function(){
    console.log('Server running on 3000...');
});

但在 Chrome 控制台中我得到:

Failed to load http://127.0.0.1:8080/: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access.

我在 Firefox 中遇到了同样的问题。

我该如何解决这个问题?

【问题讨论】:

标签: javascript jquery node.js cors


【解决方案1】:

你应该在你的服务器上设置标题Access-Control-Allow-Origin: *。 您应该做的方式取决于您的服务器端语言。

例如:PHP

<?php
header('Access-Control-Allow-Origin: *'); 
?>

【讨论】:

  • 显然是关于 node.js 而不是 php
  • 我不使用php先生。
【解决方案2】:

安装cors

npm install cors

并像这样使用

var cors = require('cors');

const corsOptions = {
  methods: "GET,HEAD,OPTIONS,PUT,PATCH,POST,DELETE",  // use to manage api cross origin error
  origin: '*'
}

var express = require('express')
var cors = require('cors')
var app = express()

app.use(cors())

app.get('/products/:id', function (req, res, next) {
  res.json({msg: 'This is CORS-enabled for all origins!'})
})

app.listen(80, function () {
  console.log('CORS-enabled web server listening on port 80')
})

运行此命令它将打开新的 chrome 并在此处运行您的代码

chrome.exe --user-data-dir="C:/Chrome dev session" --disable-web-security

【讨论】:

  • 好吧,如你所见,我不使用快递。
  • 我添加了两种使用方式cors
  • 我尝试了您的第一个解决方案,但仍然出现 CORS 错误。
  • 我添加了另一个解决方案尝试一下@Babr
  • 感谢上帝,我不在 Windows 上。 :)
猜你喜欢
  • 2021-03-05
  • 2018-11-17
  • 2020-05-27
  • 1970-01-01
  • 2015-07-03
  • 2017-06-15
  • 2019-02-28
  • 2017-11-14
  • 2012-08-16
相关资源
最近更新 更多