gpt4 book ai didi

php - 来自 steamcommunity JSON 上的 PHP file_get_contents 的 JQuery $.getJSON

转载 作者:行者123 更新时间:2023-12-01 04:38:40 26 4
gpt4 key购买 nike

我尝试使用http://steamcommunity.com/inventory/XXXXXXXXXX/753/6获取 JSON 项目。

我无法将网址放入我的 $.getJson 中因为有一个CORS « Access-Control-Allow-Origin »错误。如果我不想允许 CORS,我该如何绕过它我在某处读到可以使用 PHP file_get_contents重定向 json 文件。

Steamcommunity 不支持 JSONP

var exercice = {

modules: {}
};

exercice.modules.ajax = (function () {

return {

recupererJson: function () {
initial= $.getJSON('proxy.php',function(data){
})
initial.done(function(donnes){
var i = 0;

$.each(donnes.descriptions,function(key,value){
$('tbody').append("<tr>");
$('tbody').append("<td>"+value.name+"</td>");
$('tbody').append("<td><img src=http://cdn.steamcommunity.com/economy/image/"+value.icon_url+" alt ="+value.name+"/></td>");
$('tbody').append("</tr>");


});
});
},
init: function () {
exercice.modules.ajax.recupererJson();
}
}})();

$(document).ready(function () {
exercice.modules.ajax.init();
});

有人可以帮助我吗?

最佳答案

如果 php.iniallow_url_fopen=1 ( http://php.net/manual/en/filesystem.configuration.php ),这应该是默认的,那么你可以制作这样一个 php 文件:

<?php echo file_get_contents('http://steamcommunity.com/inventory/76561198033103987/753/6');

<?php readfile('http://steamcommunity.com/inventory/76561198033103987/753/6');

否则,如果它被禁用并且您无法访问 php.ini,但您启用了 CURL 扩展,那么您可以这样做:

<?php
$ch = curl_init();
curl_setopt($ch, 'http://steamcommunity.com/inventory/76561198033103987/753/6');
curl_setopt($ch, CURLOPT_HEADER, 0);
echo curl_exec($ch);
curl_close($ch);

参见http://php.net/manual/en/function.curl-init.php

编辑:查看您的代码,在我看来,这里只有一个问题:

initial= $.getJSON('proxy.php',function(data){

应该是

initial= $.getJSON('http://example.com/proxy.php',function(data){

您应该使用完整的 URL。

编辑2:我尝试了这段代码,它对我来说效果很好。

http://127.0.0.1/test.html:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script type="text/javascript">
var exercice = {
modules: {}
};

exercice.modules.ajax = (function () {

return {

recupererJson: function () {
initial= $.getJSON('http://127.0.0.1/proxy.php',function(data){
})
initial.done(function(donnes){
var i = 0;

$.each(donnes.descriptions,function(key,value){
$('tbody').append("<tr>");
$('tbody').append("<td>"+value.name+"</td>");
$('tbody').append("<td><img src=http://cdn.steamcommunity.com/economy/image/"+value.icon_url+" alt ="+value.name+"/></td>");
$('tbody').append("</tr>");


});
});
},
init: function () {
exercice.modules.ajax.recupererJson();
}
}})();

$(document).ready(function () {
exercice.modules.ajax.init();
});
</script>
</head>
<body>
<table>
<tbody>
</tbody>
</table>
</body>
</html>

http://127.0.0.1/proxy.php:

<?php
header("Content-Type: application/json; charset=utf-8");
header("Access-Control-Allow-Origin: *");
readfile('http://steamcommunity.com/inventory/76561198033103987/753/6');

我添加了 Content-Type header ,以便 proxy.php 形成对浏览器更友好的形式。另外,如果您使用文件 URI file:///C:/www/test 打开 test.html,则 Access-Control-Allow-Origin: * header 应防止 CORS 阻止 ajax 请求.html.

关于php - 来自 steamcommunity JSON 上的 PHP file_get_contents 的 JQuery $.getJSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44310574/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com