javascript - 通过跨站点 AJAX 解释 JSONP

标签 javascript jquery ajax jsonp

我正在尝试从 Premier League Fantasy Football 网站提取一些数据,但未能达到第 22 条军规的要求。

我的 AJAX JSONP 脚本如下所示:

function getPlayer(playerNumber) {
$.ajax({
    url: 'http://fantasy.premierleague.com/web/api/elements/' + playerNumber + '/',
    dataType: 'jsonp',
    success : function(responseText) {
        alert(responseText);
    },
    error : function(XMLHttpRequest, textStatus, errorThrown) {
        if (XMLHttpRequest.status != 200)
            alert('getPlayer failed!');
    },
    complete : function(jqXHR) {
        alert('complete');
    }
});

}

这会生成错误SyntaxError:缺失;之前的声明

我相信是因为此页面上已接受的答案: AJAX call and clean JSON but Syntax Error: missing ; before statement

将 dataType 更改为 json 意味着我违反了此处所述的同源策略。

令我烦恼的是,当我使用 JSONP 版本时,我得到状态 200,并且可以在 Firefox 调试器中看到完整的“对象”结构。

那么 Firefox 正在做什么来获取我没有获取的数据?

最佳答案

好吧,看来我从错误的 Angular 来看待这个问题。显然 Firefox 没有使用 JS 来获取数据,所以最终我也没有使用 JS 来获取数据。

PHP cURL 成功了:

$curlSession = curl_init();
curl_setopt($curlSession, CURLOPT_URL, 'http://fantasy.premierleague.com/web/api/elements/' . $playerId);
curl_setopt($curlSession, CURLOPT_BINARYTRANSFER, true);
curl_setopt($curlSession, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($curlSession);
$player = json_decode($result, true);
curl_close($curlSession);

关于javascript - 通过跨站点 AJAX 解释 JSONP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35114975/

相关文章:

javascript - 将 float div 居中

javascript - 点击li在同一页面的iframe中显示内容

jquery html 未在 getJSON 函数范围内传递回 html 变量问题

javascript - 在 multer 中重命名上传的文件

javascript onload 函数有效,onresize 无效

javascript - Microsoft Bot Framework - 读取机器人文件时出错,但所有环境变量都正确?

javascript - 如何叠加两个透明背景图像

jquery - jquery中的分页脚本用于表分页

javascript - 在 MVC 中使用 JQuery Ajax 发布数组导致 500(内部服务器错误)

php - 将多维 JSON 数组传递给 jQuery 函数