首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在NodeJS平台上阻止javascript POST到c9后端

在NodeJS平台上阻止javascript POST到c9后端
EN

Stack Overflow用户
提问于 2019-04-24 19:45:42
回答 1查看 156关注 0票数 0

我正在为学校做一个很简单的项目。我和我的队友选择AWS 9作为我们的平台,随着我们的进步,我学会了在飞行中使用这个平台。我的工作是编写脚本。我有一个使用Express查询DB的NodeJS后端,还有客户端JS向后端发送带有表单数据的帖子。由于不明白的原因,我得到了以下错误:跨源读取阻塞(CORB)阻止了我的项目/search.js的跨源响应/Address,MIME类型为text/html。

在过去的8个小时里,我一直在上网,我找不到一个有效的解决方案。我尝试将cors包添加到我的后端,我尝试操作客户端和后端头。

客户端

代码语言:javascript
复制
document.getElementById("search_form").onsubmit = function(event) {
    var val = document.getElementById("search_bar").textContent;
    var data = JSON.stringify(val);

    var fetchParams = {
        headers: {
            'Access-Control-Allow-Origin': '*',
            'User-Agent': 'JDevo/1.0',
            'Content-Type': 'application/json',
        },
        body: data,
        method: 'POST',
        mode: 'cors'
    };

    window.fetch('/*c9 address of my project*//queryDB.js/', fetchParams)
        .then(res => function(res) {
            document.getElementById("main_page").style.display = "none";
            document.getElementById("results_page").style.display = "block";
            if (res.status !== 200) {
                document.getElementById("dummy").innerHTML = "There was a problem with the response";
                return;
            }
            var games = JSON.parse(res.body);
            document.getElementById("dummy").innerHTML = games;
        });
    event.preventDefault();
}

后端

代码语言:javascript
复制
var mysql = require('mysql');
var express = require("express");
var cors = require('cors');

var app = express();
app.use(cors());

var con = mysql.createConnection({/*DB params*/
});

app.post('/*c9 project address*//queryDB.js/', function(req, res) {
    //var searchItem = req.body.query;
    var searchItem = 'sekiro';/*testing backend with locked value to make sure a response is being sent*/

    con.connect(function(err) {
        if (err) throw err;
        console.log("Connected");

        var sql = 'Select * FROM gamesMerged WHERE gameName LIKE "%' + searchItem + '%";';

        con.query(sql, function(err, result) {
            if (err) throw err;
            console.log(result);
            res.status(200).json(JSON.stringify(result));
        });
    });

});
app.listen(3000);

期望的结果是,post成功地提取了一个响应,这将导致主页面div在结果页div弹出时隐藏起来,“虚拟”div用作响应区域,以显示指示后端请求失败的消息,或者以其他方式显示响应对象。这是一个测试场景,一旦通过了这个障碍,我将成功地解析返回的响应对象并更准确地操作响应页

EN

回答 1

Stack Overflow用户

发布于 2019-04-25 03:56:09

不介意,我想出来了。经过进一步的检查,我发现html脚本标记的src属性写得不正确

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55837502

复制
相关文章

相似问题

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