在AngularJs按钮上运行Axios,点击

时间:2019-01-28 23:35:10

标签: javascript node.js angularjs express axios

我正在使用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

0 个答案:

没有答案