I'm trying to set up a simple web-server with Arduino Yun without an SD card, i.e via REST, if I understood it right (I'm new to some of these stuff). I want to be able to "get" data (sent by Arduino) through a jQuery script and show the user a formatted HTML page.
Here I provide you a simplified version of my Arduino sketch:
#include <Bridge.h>
#include <YunServer.h>
#include <YunClient.h>
const byte internalLED = 13;
YunServer server;
void setup() {
pinMode(internalLED, OUTPUT);
digitalWrite(internalLED, HIGH); // Turn the led on to advise about bridge begin in progress
Bridge.begin(); // Let's activate the Yun Bridge...
ledBlink(150); // ...bridge activation done (user sees a blink)
// server.listenOnLocalhost(); // Listen for incoming connection only from localhost (no one from the external network could connect)
server.begin(); // Let's acrivate the Yun server...
ledBlink(150); // ...server activation done (user sees a blink)
}
void loop() {
YunClient client = server.accept(); // Get clients coming from server
if (client) // Is there a new client?
{
client.print(77); // Send a "77" to client (e.g. browser)
client.stop(); // Close connection and free resources.
ledBlink(500);
}
delay(50);
}
void ledBlink(int delayTime) {
digitalWrite(internalLED, HIGH); // Turn (or keep) the LED on
delay(delayTime);
digitalWrite(internalLED, LOW); // Turn (or keep) the LED off
delay(delayTime);
}
My Arduino Yun is connected via WiFi with static IP (192.168.1.98) to the same network of my laptop, and they can ping each other. Right now, if I insert into my browser the address
http://192.168.1.98/arduino/whatever
I correctly receive a simple «77» (no quotes or \r\n)
But I cannot "get" it when opening the page get_test.html (which is on my harddisk, not in the SD):
<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
$.get("http://192.168.1.98/arduino/whatever", {}, function(data,status){
alert("Data: " + data + "\nStatus: " + status);
});
</script>
</head>
<body></body>
</html>
This is strange to me because this html code works if I change the address inside the "get" request with https://dl.dropboxusercontent.com/u/12389503/demo_test.txt which consists only of a «21» (no \r\n). The problem is I don't even receive the alert when the address is the IP of Arduino, but the board is receiving the request since I can see the led blinking once, as expected. I'm running out of tests, any suggestion is welcome.