$http.jsonp 请求报错

蓠人
  • 195

angularjs 的$http.jsonp请求报错,代码如下:

data = {
    a:A,
    b:B,
    c:C,
}
$http.jsonp('url',data).success(function(res){
    console.log(res);
}).error(function(err){
    console.log(err);//控制台打印fasle
})
并报错:Uncaught SyntaxError: Invalid or Unexpected token  url(请求链接)

点击这个链接,拿到数据,在json在线校验中校验,发现B字段中有换行,但是用链接在浏览器中访问也没发现有换行。联系后台,后台说自己入库的时候没有换行符,我前端也拿不到数据,没办法处理,这种情况还有可能是啥原因,应该怎么解决?

回复
阅读 2.4k
2 个回答
阿宝哥
  • 15.5k

谢邀,没有看到地址哦,应该是返回的数据格式有问题。
你可以在浏览器打开https://www.w3schools.com/js/...,然后用开发者工具,查看Network面板查看HTTP信息。

使用XMLHttpRequest对象请求数据示例

<!DOCTYPE html>
<html lang="en" ng-app="myapp">
<head>
    <meta charset="UTF-8">
    <title>Angular Repeat-Done Demo</title>
    <script src="https://cdn.bootcss.com/angular.js/1.6.3/angular.min.js"></script>
</head>
<body ng-app="myapp">
<div ng-controller="AppCtrl">
    <h4>Users List</h4>
    <ul>
        <li ng-repeat="member in members">
            <p>
                ID:<span>{{member.id}}</span>
                Name: <span>{{member.login}}</span>
            </p>
        </li>
    </ul>
</div>
<script type="text/javascript">
    var myapp = angular.module("myapp", [])
            .controller("AppCtrl", ['$scope', function ($scope) {
                $scope.getMembers = function () {
                    let MEMBERS_URL = `https://api.github.com/orgs/angular/members?page=1&per_page=5`;
                    let xhr = new XMLHttpRequest();
                    xhr.open("GET", MEMBERS_URL);
                    xhr.onreadystatechange = () => {
                        if (xhr.readyState == 4 && xhr.status == 200) {
                            if (xhr.responseText) {
                                try {
                                    // 手动触发脏值监测
                                    $scope.$apply(function() {
                                        // 在转JSON对象前,对xhr.responseText进行数据格式化
                                        $scope.members = JSON.parse(xhr.responseText);
                                    });
                                } catch (error) {
                                    throw error;
                                }
                            }
                        }
                    };
                    xhr.send(null); // (6)
                };

                $scope.getMembers();
            }])
</script>
</body>
</html>
蓠人
  • 195
$(document).ready(function(){

        $.ajax({
            type: "get",
            async: false,
            url: url,
            dataType: "jsonp",
            jsonp: "callback",
            jsonpCallback:"JSON_CALLBACK",
            success: function(json){
                if (json) {
                    try {
                        // 手动触发脏值监测
                        $scope.$apply(function() {
                            console.log(json);
                        });
                    } catch (error) {
                        throw error;
                    }
                }
            },
            error: function(err){
                console.log(err);
            }
        });

    });
宣传栏