编辑
CHEC在这里我的编辑过的JSONP问题我得到了这个错误:
无法加载资源:服务器响应状态为500(内部服务器错误)。
var b = ['foo', 'bar'],
c = new Array('foo', 'bar');
答案 0 :(得分:0)
默认情况下,浏览器不允许javascript调用另一个域" brsv20cc90e37.ng.bluemix.net",除非brsv20cc90e37应用程序实现了CORS - 基本上只是在其响应中有这个标头:
Access-Control-Allow-Origin: *
*表示允许所有域都调用它。您也可以指定确切的域名。
http://enable-cors.org/server.html
How does Access-Control-Allow-Origin header work?
如果您研究" Access-Control-Allow-Origin"
,可以在线获得大量重要信息在这种情况下,如果您不拥有brsv20cc90e37应用程序,则应使用服务器端代码而不是客户端javascript调用brsv20cc90e37 API。有些API,比如这个,并不打算从浏览器中调用,所以没有理由让它们实现CORS。
答案 1 :(得分:0)
理想情况下,您应该在Bluemix中创建此请求服务器端,然后使用您的Bluemix应用程序将请求代理到您的客户端应用程序。您收到CORS错误,因为浏览器不允许您从不同的域请求资源。
此外,Business Rules服务看起来不允许使用CORS。您需要编写一些服务器端代码来代理您的请求。
我已在下面发布了一些代码以及Github上的要点,以帮助您隔离问题。
抓取两个文件并将它们放在一个目录中,然后修改// Dispose of any resources that can be recreated.
中包含业务规则用户名和密码的两行。
package.json (https://gist.github.com/jsloyer/2bf436f342e1d24c3099)
app.js
app.js (https://gist.github.com/jsloyer/e5a953cf5691a4aeefc2)
{
"name": "bluemix-business-rules",
"version": "0.0.1",
"dependencies": {
"express": "~4.10.8",
"restler": "~3.2.2",
"async": "~0.9.0",
"body-parser": "~1.12.4"
},
"engines": {
"node": ">=0.10"
},
"author": "IBM Corp.",
"contributors": [
{
"name": "Jeff Sloyer",
"email": "jbsloyer@us.ibm.com"
}
],
"license": "Apache-2.0",
"scripts": {
"start": "node app.js"
}
}
然后运行var app = require("express")(),
restler = require("restler");
app.get("/", function(request, response) {
var json = {
"employeeID": "jujuju",
"loanAmount": 10517320,
"theEmployee": {
"seniority": 3,
"annualSalary": 10517320,
"nbOfExtraVacationDaysBasedOnSeniority": 10517320
},
"creditAmount": 20000,
"__DecisionID__": "string",
"AnnualSalary": 20000
};
var options = {
username: "replaceme",
password: "replaceme"
};
var url = "https://brsv2-6855bc66.ng.bluemix.net/DecisionService/rest" + "/vacationsRuleApp/1.0/vacationsRuleProject/json";
restler.postJson(url, json, options).on('complete', function(data) {
response.send(data);
});
});
app.listen(process.env.VCAP_APP_PORT || 8080);
。
打开您的网络浏览器并导航到它为您提供的网址。希望我们可以尝试调试最新情况。