我使用module Express在NodeJs上創建了一個服務器。現在我想通過點擊一個按鈕來實現從頁面$.ajax
的請求。我想以json格式或文本格式從服務器獲取數據,這並不重要,但它不起作用。爲什麼?
加上爲什麼ajax請求重新加載的HTML頁面,而它不應該?
服務器部分:從html頁面到服務器的Ajax請求不起作用
var express = require('express');
var fs = require('fs');
var request = require('request');
var cheerio = require('cheerio');
var app = express();
var url = require("url");
app.get('/scrape', function (req, res) {
console.log("Someone made request");
url = 'http://spun.fkpkzs.ru/Level/Gorny';
request(url, function (error, response, html) {
if (!error) {
console.log("Inside request");
var $ = cheerio.load(html);
var date, waterlevel;
var json = {
time: "",
waterlevel: ""
};
json.time = $("#waterleveltable td.timestampvalue").first().text()
json.waterlevel = $("#waterleveltable td.value").first().text()
res.send(json);
console.log(json);
}
})
})
app.listen('8081')
console.log('Server started on port 8081');
exports = module.exports = app;
這是我HMLT要求:
<form>
<!-- button for sending a request to server-->
<button id="button12">Scrape water height</button>
</form>
<div id="response21">
Print
<!-- div for displaying the response from server -->
</div>
<p id="p1">___!</p>
<script>
$(document).ready(function() {
$("#button12").click(function() {
console.log("Get sent.")
// Json request
$.get("http://localhost:8081/scrape", function (data)
{
console.log("Data recieved" + data);
$("#response21")
.append("Time: " + data.time)
.append("Waterlevel: " + data.waterlevel);
}, "json");
});
});
你的HTML頁面是否也載入'localhost:8081'? – Phil
我剛剛在瀏覽器中打開HTML頁面(Chrome) –
是的,您的瀏覽器中的地址是什麼? – Phil