我有一个PHP脚本调用API需要一段时间才能加载,因此用户暂时看不到页面并且认为出现了问题.
我被告知,Jquery脚本可以将数据发送到PHP文件,从中获取结果数据并在执行此操作时显示加载消息/动画.环顾互联网我发现了这个:
$.get("check.php", { url: "www.domain.com"}, function(data){
alert("Data Loaded: " + data);
});
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚PHP文件如何接收发送的数据($_GET['url']或其他方式),或者如何接收和显示数据以及如何显示加载消息.我知道很多问题,但我非常感谢任何信息,以了解如何做到这一点.
(非常无知的问题,我坦率地承认)
我有一个简单的网页,上面有一个按钮和一个标签.当我单击按钮时,我想对一个完全不同的域(跨域,我知道很多)进行REST调用,并在标签中显示结果(HTML).
使用其他API,我已经玩过使用JSON/P并动态添加元素,但是这个特殊的API不支持JSON,因此我不确定如何成功通过.
我的代码是:
function getESVData() {
$.get('http://www.esvapi.org/v2/rest/passageQuery?key=IP&passage=John+1', function (data) {
$('#bibleText').html(data);
app.showNotification("Note:", "Load performed.");
});
}
Run Code Online (Sandbox Code Playgroud)
我得到了"拒绝访问".无论如何在没有JSON的情况下成功调用此调用?
这应该是最简单的事情之一,但我在文档中找不到如何做到这一点.我已经找到了如何做python lib2,但我想用django来获取状态代码,内容等.
就像是:
response = httpget('http://my-ulr.com')
print response.status_code
Run Code Online (Sandbox Code Playgroud) 在我的服务器端(ASP.ne MVC)我有这样的方法:
[HttpGet]
public JsonResult GetTrenings(string treningId)
{
var tempId = Guid.Parse(treningId);
var trening = TreningService.GetTreningById(tempId);
_trenings = TreningService.GetAllTreningsForUser(trening.UserId);
return Json(_trenings, JsonRequestBehavior.AllowGet);
}
Run Code Online (Sandbox Code Playgroud)
我有Angular服务:
publicApp.angularModule.factory('feedSingleTreningService', function ($q, $http) {
return {
getTrenings: function (data) {
var input = $http.get("/Feed/GetTrenings", { params: { treningId: data } });
var deferred = $q.defer();
deferred.resolve(input);
return deferred.promise;
},
};
});
Run Code Online (Sandbox Code Playgroud)
在我的控制器中,我将此服务称为:
feedSingleTreningService.getTrenings(data).then(function(results) {
console.log("test", results);
});
Run Code Online (Sandbox Code Playgroud)
但是在控制台中没有显示任何内容,我调试了服务器端并请求到达它,它返回_trenings,服务也返回promise,但没有任何反应.
我终于改变了,在控制台"test"中显示但结果未定义.
为什么会这样?
我正在使用 ArduinoIDE 对 ESP32 进行编程,并且遇到了 HTTP GET 问题。我在做什么:
这是我用于 HTTP GET 调用的代码:
static WiFiClient wifi;
HttpClient wlanHttp=HttpClient(wifi,"my.server.tld");
wlanHttp.get("/setpos.php?id=DEADBEEF"); // -> this fails with error code -1
wlanHttp.responseStatusCode(); // follow-up error -1
wlanHttp.stop();
Run Code Online (Sandbox Code Playgroud)
知道这里出了什么问题吗?
这个问题已经出现过好几次了,每次出现时,我都会忙着弄清楚如何以正确的方式去做,因为我似乎永远无法找到上次需要时是如何做的。
这次出现是因为我意识到httpGet在处理先前的httpGet调用时需要进行额外的调用:
http.getWrapper<T>(whatever)
.pipe<T, T>(map<T, T>(res => getWrapper2<T, T>(res)) // New function, returns the same type it was given
.pipe<T, U>(oldStuff)
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是,以前,没有额外的get调用,我的oldStuff处理程序收到了一个T它可以毫无问题地处理的问题。但是新的get调用返回一个Observable<T>,我总是发现弄清楚如何告诉管道链等待 完成get并使用最终值很令人困惑。我能想到做的任何事情,主要似乎是toPromise()和的变体async/await,只是在我和我的数据之间移动额外的层,而我似乎不太能理解它。由于某种原因,插入第二个get似乎总是比第一个更令人困惑get,我不知道我是否需要改变结构,或者只是我的想法不对。
为了让事情变得更加混乱,只有有时才需要额外的处理层:
.pipe(map(res => condition(res) ? getWrapper2(res) : res))
Run Code Online (Sandbox Code Playgroud)
我可以做什么来等待并扁平化它,以便我可以将新get结果传递给链的其余部分pipe?
我正在研究应用程序,我想将坐标存储到本地数据库(wampserver)所以我已经完成了php脚本并且它可以工作,但我的问题是使用HTTP GET方法从我的应用程序执行该script.php.
我找到了这个代码,但它不起作用!! 所以,我需要你的帮助,谢谢!
链接到HTTP获取代码 - >:http://www.softwarepassion.com/android-series-get-post-and-multipart-post-requests/
http-get ×7
javascript ×3
rest ×2
android ×1
angularjs ×1
arduino-ide ×1
asp.net-mvc ×1
async-await ×1
django ×1
esp32 ×1
http ×1
jquery ×1
observable ×1
php ×1
python ×1
rxjs ×1
send ×1
typescript ×1
wifi ×1