gpt4 book ai didi

javascript - 简单的 HTTP GET 无法使用 https 来获取 JSON

转载 作者:行者123 更新时间:2023-11-28 06:55:39 25 4
gpt4 key购买 nike

我有一个使用 AngularJS 和 Onsen UI 构建的工作 PhoneGap 应用程序,它访问一个 PHP 文件,在响应中获取一些数据。 php 文件位于具有简单 http 的域上,但现在我将其移至支持 https 的域,我不断遇到一些奇怪的问题。

我尝试了 AngularJS 异步方式获取数据,以及 ajax 调用。

$http.get('https://blablabla.com/file.php?parameters').then(function(response) {
//SUCCESS
alert(response);
var z = response;
},function(response) {
alert("Failed");
});

它转到 SUCCESS 部分,但我其中的数据不正确。它应该是一个字符串(一个纯 JSON 字符串,我将对其进行字符串化并转换为 json 对象)

ajax 调用如下:

function httpGet(theUrl) {
var dataToReturn;
$.ajax({
type: 'GET',
url: theUrl,
cache: false,
async: false,
data: "",
success: function(data, textStatus, result) {
dataToReturn = data;
},
error: function (result, textStatus, errorThrown) {
alert("Failed to get response from server!");
}
});

return dataToReturn;
//var xmlHttp = new XMLHttpRequest();
//xmlHttp.open( "GET", theUrl, false ); // false for synchronous request
//xmlHttp.send( null );
//return xmlHttp.responseText;
};

我基本上是从 PhoneGap 应用程序调用 https 中的 php 脚本。如果我将地址更改为http,它就可以完美地工作......

我还希望您注意,PhoneGap 基本上创建了某种本地代理。不过,我不太确定如何详细说明这一点......

关于如何解决这个问题的任何想法,以获取与地址为简单“http”时相同的数据?

最佳答案

Angular 会自动转换 json,如果您从 PHP 服务器端设置正确的 header ,效果会更好:

header('Content-Type: application/json');

就在 echo 之前。

第二,你的 get 似乎缺少括号

$http.get('https://blablabla.com/file.php?parameters')
.then(function(response) {
//SUCCESS
alert(response);
var z = response;
},function(response) {
alert("Failed");
});

第三,响应不再直接响应,而是response.data所以你可能想尝试一下

alert(response.data);
var z = response.data;

警告!根据您的 Angular.js 版本,这会有很大差异

根据您使用的 Angular 版本,$http 对象可以使用多种不同的语法。

关于javascript - 简单的 HTTP GET 无法使用 https 来获取 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32588237/

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