gpt4 book ai didi

javascript从rpc获取数据

转载 作者:行者123 更新时间:2023-11-28 01:32:20 25 4
gpt4 key购买 nike

我有一个php代码,它可以从RPC服务器获取json数据。

<?php
error_reporting(E_ALL);

$server = 'http://pogoda.ngs.ru/json/';
// API-method
$method = 'getForecast';
// input data
$params = array('name' => 'current',
'city' => 'nsk');

//
$request = array('method' => $method,
'params' => $params);

// encode to json
$request = json_encode($request);


//
$opts = array('http' => array('method' => "POST",
'content' => $request));

// context stream
$context = stream_context_create($opts);

// get result
$result = file_get_contents($server, 0, $context);
$result = json_decode($result, true);

print_r($result);
?>

然后我尝试通过 jquery 在 javascript 中执行此操作。我找了很多方法,但都没有效果。

<html>
<head>
<link rel=stylesheet type="text/css" href="myCssFile.css">
<script type="text/javascript" src="jquery-1.11.0.min.js"></script>
</head>
<body>
<?php
header('Content-type: text/html; charset=utf-8');
?>

<script>
var url = "http://pogoda.ngs.ru/json/";

var request = {};
request.method = "getForecast";
request.params = {};
request.params.name = "current";
request.params.city = "nsk";
request.params.jsonrpc = "2";
request.params.dataType = "json";

$.ajax({
url: url,
data: JSON.stringify(request),
type: "POST",
contentType: "application/json"
}).done(function(rpcRes) {
alert("ok");
}).fail(function(err, status, thrown) {
alert("Error ajax");
});

</script>
</body>
</html>

我总是遇到错误或什么都没有。有人知道吗?

最佳答案

Marc B 的评论很接近,但并不完全正确。您不能向不受您控制的服务器发出任意 AJAX 请求。安全策略可以防止这种情况发生。

如果您控制两个端点,则可以添加 Access-Control-Allow-Origin header 以允许另一个域向其发出请求,但如果不这样做,您就无法使用运气好。

您最好的选择可能是继续使用获取数据的 PHP 脚本,如果您需要在页面中实时更新,则使用 AJAX 调用该脚本 - 这样您就可以使用自己的服务器作为某种代理,使其正常工作。

关于javascript从rpc获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21961043/

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