鍍金池/ 問答/Java  網絡安全/ 剛開始玩后端使用node.js求教一些關于接口請求"基礎"問

剛開始玩后端使用node.js求教一些關于接口請求"基礎"問題

不是跨不跨域問題,我是想問, 為什么非同源情況下會請求成功?

(雖然console報錯,但請求成功了)
**

環(huán)境

**
node.js
express
mysql
Ajax
**

問題

**
前端:Ajax發(fā)送post請求...

$.ajax({
    url : "http://localhost:3000/savePost",
    type : "post",
    dataType: 'json',
    data:{title: title, content: content},
    success: function (_data) {
        alert('提交成功');
    },
    error: function() {
        alert('服務器請求失?。?);
    }
});

后端:接收到發(fā)送得值

router.post ('/savePost', (req, res) => {
  let getData = {
    title: req.body.title,
    content: req.body.content
  };
  db('insert into newsdetail (title, content) values ("'+getData.title+'", "'+getData.content+'")',
  (err, data) => {
    if (err) throw new Error(err);
    res.json({status: '200', result: 'ok'});
  })
});

請教后端這里還需配置或添加什么嗎?因為,我前端頁面沒在環(huán)境中,在桌面放了個測試文件
瀏覽器控制臺(Console)在請求過程中會報錯,如:
Failed to load http://localhost:3000/savePost: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.
這種情況下,雖然這錯誤,但(Network)請求成功了Status Code:200 OK,數據庫也插入成功了。如圖
圖片描述

圖片描述

圖片描述

圖片描述

當然,瀏覽器設置了跨域那個問題是不會報錯。
**這正常嗎?后端這塊是否要添加什么?不了解這個,百度也不曉得怎么問。
求教?。?!**

回答
編輯回答
北城荒

Response Headers
Access-Control-Allow-Origin: *

2018年8月21日 04:50
編輯回答
陌如玉

同源策略中要保證域名,協(xié)議,端口一樣。
既然跨域訪問自然要涉及處理跨域啦,
express處理比較簡單

  1. cnpm install cors --save // 安裝模塊
  2. var cors = require('cors') // require模塊
  3. app.use(cors()) // use一下就好啦

即可解決跨域

2018年1月16日 14:21
編輯回答
陪我終

建議了解一下瀏覽器的 同源策源跨域資源共享
可以參考一下阮一峰老師的博客鏈接描述

2017年3月8日 19:05