我在邮寄请求中得到405(METHOD NOT NOTOWED)。我知道jsonp只适用于GET请求,而且我很可能需要启用CORS。有没有办法通过我的javascript文件启用CORS?或者不涉及创建单独的服务器端桥的任何方式?以下是ajax请求的代码:
function getData(){
var myUrl = 'http://text-processing.com/api/sentiment/';
var searchTerm = "happy";
$.ajax({
url: myUrl,
type: 'POST',
data: { 'text' : searchTerm },
dataType: 'jsonP',
error: function(msg) {
console.log(msg);
},
success: function(response){
console.log("it worked");
console.log(response);
}
});
}
getData();
答案 0 :(得分:0)
如果您使用的是ExpressJS 有一种方法可以启用跨域:
在您要发布的文件中,在require语句之后,尝试在此处添加此代码: 示例:您发布的是user.js,因此在获得路由后将其放在文件的开头。
var router = express.Router();
router.all('*', function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "X-Requested-With");
res.header("Access-Control-Allow-Methods", "PUT, GET,POST,OPTIONS");
next();
});
实际上,你可以只添加:
router.all('*', function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "X-Requested-With");
next();
});
或针对特定请求:
router.all('/', function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "X-Requested-With");
next();
});
但是,我认为这不太安全。您可以像我现在一样进行研究以查看使用它的最佳方法,但您可以将其用于测试并稍后进行更改。至少,你不会被困在这一部分。
祝你好运! ;)