如何在 Bluemix 中向节点应用程序发出 cors 请求
How to do a cors request to a node app in Bluemix
我正在 bluemix 上制作一个与业务规则服务绑定的节点应用程序,并且我在 mobilefirst 上托管了另一个应用程序,我在其中创建了我的应用程序 UI。我想从 mobilefirst 应用程序发送数据并接收数据,有人告诉我使用 cors 请求,但我不知道该怎么做。
这是我的 app.js 文件:
var app = require("express")(),
restler = require("restler"),
bodyParser = require("body-parser");
app.use(bodyParser.json());
app.use(function(request, response, next) {
response.header("Access-Control-Allow-Origin", "*");
response.header("Access-Control-Allow-Headers", "Origin, X-Requested-With,Content-Type, Accept");
next();
});
app.post("/", function(request, response) {
var options = {
username: "resAdmin",
password: "replace"
};
var url = "https://brsv2-6855bc66.ng.bluemix.net/DecisionService/rest" + "/vacationsRuleApp/1.0/vacationsRuleProject/json";
restler.postJson(url, request.body, options).on('complete', function(data) {
response.send(data);
});
});
app.listen(process.env.VCAP_APP_PORT || 8080);
这是我的客户端代码 :
$.post(
"http://businessrules-vacationsruleapp.mybluemix.net/",
{
"employeeID": "jujuju",
"loanAmount": 10517320,
"theEmployee": {
"seniority": 3,
"annualSalary": 10517320,
"nbOfExtraVacationDaysBasedOnSeniority": 10517320
},
"creditAmount": 20000,
"__DecisionID__": "string",
"AnnualSalary": 20000 },
function( data ) {
alert(JSON.stringify(data));
console.log(data);
}
);
您需要在 app.js
中包含以下内容。以下将根据请求允许 CORS。
app.js
var app = require("express")(),
restler = require("restler"),
bodyParser = require("body-parser");
app.use(bodyParser.json());
app.use(function(request, response, next) {
response.header("Access-Control-Allow-Origin", "*");
response.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
next();
});
app.post("/", function(request, response) {
var options = {
username: "replace",
password: "replace"
};
var url = "https://brsv2-6855bc66.ng.bluemix.net/DecisionService/rest" + "/vacationsRuleApp/1.0/vacationsRuleProject/json";
restler.postJson(url, request.body, options).on('complete', function(data) {
response.send(data);
});
});
app.listen(process.env.VCAP_APP_PORT || 8080);
然后客户端 JQuery 你可以做以下事情。
$.ajax ({
url: "https://businessrules-vacationsruleapp.mybluemix.net",
type: "POST",
data: JSON.stringify({
"employeeID": "jujuju",
"loanAmount": 10517320,
"theEmployee": {
"seniority": 3,
"annualSalary": 10517320,
"nbOfExtraVacationDaysBasedOnSeniority": 10517320
},
"creditAmount": 20000,
"__DecisionID__": "string",
"AnnualSalary": 20000 }),
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function (data){
console.log(data);
$(".result").text(JSON.stringify(data));
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="result"></div>
您从 post 调用发送的任何对象都将发送到业务规则服务。
CORS npm 模块使它非常容易与 Express 一起使用。
var express = require('express')
, cors = require('cors')
, app = express();
app.use(cors());
我正在 bluemix 上制作一个与业务规则服务绑定的节点应用程序,并且我在 mobilefirst 上托管了另一个应用程序,我在其中创建了我的应用程序 UI。我想从 mobilefirst 应用程序发送数据并接收数据,有人告诉我使用 cors 请求,但我不知道该怎么做。
这是我的 app.js 文件:
var app = require("express")(),
restler = require("restler"),
bodyParser = require("body-parser");
app.use(bodyParser.json());
app.use(function(request, response, next) {
response.header("Access-Control-Allow-Origin", "*");
response.header("Access-Control-Allow-Headers", "Origin, X-Requested-With,Content-Type, Accept");
next();
});
app.post("/", function(request, response) {
var options = {
username: "resAdmin",
password: "replace"
};
var url = "https://brsv2-6855bc66.ng.bluemix.net/DecisionService/rest" + "/vacationsRuleApp/1.0/vacationsRuleProject/json";
restler.postJson(url, request.body, options).on('complete', function(data) {
response.send(data);
});
});
app.listen(process.env.VCAP_APP_PORT || 8080);
这是我的客户端代码 :
$.post(
"http://businessrules-vacationsruleapp.mybluemix.net/",
{
"employeeID": "jujuju",
"loanAmount": 10517320,
"theEmployee": {
"seniority": 3,
"annualSalary": 10517320,
"nbOfExtraVacationDaysBasedOnSeniority": 10517320
},
"creditAmount": 20000,
"__DecisionID__": "string",
"AnnualSalary": 20000 },
function( data ) {
alert(JSON.stringify(data));
console.log(data);
}
);
您需要在 app.js
中包含以下内容。以下将根据请求允许 CORS。
app.js
var app = require("express")(),
restler = require("restler"),
bodyParser = require("body-parser");
app.use(bodyParser.json());
app.use(function(request, response, next) {
response.header("Access-Control-Allow-Origin", "*");
response.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
next();
});
app.post("/", function(request, response) {
var options = {
username: "replace",
password: "replace"
};
var url = "https://brsv2-6855bc66.ng.bluemix.net/DecisionService/rest" + "/vacationsRuleApp/1.0/vacationsRuleProject/json";
restler.postJson(url, request.body, options).on('complete', function(data) {
response.send(data);
});
});
app.listen(process.env.VCAP_APP_PORT || 8080);
然后客户端 JQuery 你可以做以下事情。
$.ajax ({
url: "https://businessrules-vacationsruleapp.mybluemix.net",
type: "POST",
data: JSON.stringify({
"employeeID": "jujuju",
"loanAmount": 10517320,
"theEmployee": {
"seniority": 3,
"annualSalary": 10517320,
"nbOfExtraVacationDaysBasedOnSeniority": 10517320
},
"creditAmount": 20000,
"__DecisionID__": "string",
"AnnualSalary": 20000 }),
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function (data){
console.log(data);
$(".result").text(JSON.stringify(data));
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="result"></div>
您从 post 调用发送的任何对象都将发送到业务规则服务。
CORS npm 模块使它非常容易与 Express 一起使用。
var express = require('express')
, cors = require('cors')
, app = express();
app.use(cors());