我正在使用AngularJs和Bootstrap。我需要在具有应用程序密钥和应用程序令牌的API上发布帖子。首先,我尝试使用Ajax,但得到405响应:
在以下位置访问XMLHttpRequest 'https://thelink' 来自来源“ http://mylink”的信息已被 CORS政策:对预检请求的响应未通过访问控制 检查:标题上没有'Access-Control-Allow-Origin'标头 请求的资源。
这是我的代码:
$scope.sendThis = function(){
var destinyData = {
"FieldId": 1,
"Name": "Test",
"Text": "Test",
"IsActive": true,
"Position": 105
};
$.ajax({
url: 'thelink',
headers: {
'Content-Type': 'application/json',
'API-AppKey': 'thekey',
'AppToken': 'thetoken'
},
data: destinyData,
success: function(result){
console.log(result);
},
error: function(){
console.log("Something's wrong!");
}
});
}
我的HTML视图:
<button type="button" class="btn btn-primary" ng-click="sendThis()">Send</button>
然后,我读到我可以使用Axios在后端进行请求。因此,我安装了axios库(npm axios
)并进行了测试:
const axios = require('axios');
axios({
method: 'post',
url: 'thelink',
headers: {'Content-Type': 'application/json', 'API-AppKey': 'thekey', 'AppToken': 'thetoken'},
data: {
"FieldId": 113,
"Name": "Test",
"Text": "Test",
"IsActive": true,
"Position": 545
}
})
.then(function(response){
console.log(response);
})
.catch(function(error){
console.log(error);
})
它有效!现在我的问题是:我如何才能在单击按钮时触发Axios的方法发布,就像我的第一个测试($scope.sendThis
)一样?
还有第二个问题:有没有一种方法可以生成带有Express的api来调用NodeJ上的axios示例?
希望您能帮助我。谢谢。
我正在使用Javascript,AngularJs,Bootstrap和NodeJs