如何在跨域环境中从ajax调用中调用nodejs API并通过将数据返回给Ajax来获得响应

时间:2018-07-13 06:17:11

标签: node.js ajax

  

通过Ajax调用nodejs和API的新功能帮助我

//Node Function to be call via ajax 
app.get('/Employee', function (req, res) {
  var  obj = {};
       // res.sendFile(__dirname + "/" + "Employee.html");
    var mysql = "Select * from employeelogin";
    
        con.query(mysql, function (err, result) {
            if (err) throw err;
            console.log(result);//
            obj = result;

    });
//return Obj
    res.render('/Employee', obj);

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
function Get_Emp_record() {
    $.ajax({
       // url: '/Employee/GetDetails',
        url:'http://127.0.0.1:8081/Employee',
        data: {},
        method: 'GET',
        async: false, 
        crossDomain: true,
        processData: true,
        contentType: "application/json",
        dataType: 'json',
        jsonpCallback: 'callback', 
        success: function (data) {
           
            alert(data)
        },
        error: function (jqXHR, textStatus, err) {
            //show error message
            alert('text status ' + textStatus + ', err ' + err)
        }
    });
}

  

提前谢谢

2 个答案:

答案 0 :(得分:1)

要详细说明vibhor1997a的评论,

通过发出以下命令在项目中安装cors软件包,

$ npm install cors

您可以像这样在您的应用程序中添加

var express = require('express')

您可以这样启用CORS

app.use(cors());
app.get('/Employee', cors(), function(req, res) {.....

希望这会有所帮助!

答案 1 :(得分:1)

对此的简单解决方案是使用“ cors”模块。

安装

npm install cors

用法:

var cors = require('cors')
app.use(cors());

这就是您要做的所有事情。

注意::某些HTTP请求可能已被预检,“预检”请求首先通过OPTIONS方法向另一个域上的资源发送HTTP请求,以确定实际请求是否安全发送。 要启用预检,您必须为要支持的路线添加新的OPTIONS处理程序:

app.options('/route', cors()) // for a particular route

要对所有航线启用飞行前检查,只需使用:

app.options('*',cors()) //for all routes(include before other routes)

有关预审请求的更多信息:https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Preflighted_requests