我目前正在开发一个可以使用此代码访问我的MCU网络服务器的PC网络服务器。
PC和MCU连接在同一网络中。 无论何时,我尝试通过jquery向我的MCU服务器发送GET REQUEST,我得不到任何响应。虽然我看到MCU收到了请求,但我的PC网络服务器没有收到任何响应。
可能是因为我有关于跨域访问的问题吗?但为什么?他们只是连接到同一个网络吗?
<!DOCTYPE html>
<html>
<?php
header("Access-Control-Allow-Origin: *");
?>
<head>
<script src="jquery-2.0.3.min.js"></script>
<script src="jquery-1.9.1.js"></script>
<script src="jquery-ui.js"></script>
<script>$(document).ready(function()
{
$("button").click(function()
{
$.get("192.168.1.102/",function(data,status)
{
alert("Data: " + data + "\nStatus: " + status);
});
});
});
</script>
</head>
<body>
<button>Send an HTTP GET request to a page and get the result back</button>
</body>
</html>
我的MCU网络服务器没有文件index.html或.php,但是当收到GET或POST请求时,它会发送一个字符串。
以下是它发送的字符串:
#define HTTP_HEAD "HTTP/1.1 200 OK\r\n" \
"Content-Type: text/html\r\n" \
"Connection: Close\r\n" \
"Content-Length: 1121\r\n\r\n" \
"<!DOCTYPE html>" \
"<html>" \
"<head>" \
"<style>" \
"#content{color: red; font-size: 50px;top: 70px;}" \
"</style>" \
"</head>" \
"<body>" \
"<center>" \
"<div id='content'>"
#define HTTP_TAIL "</center></body></html>\r\n\r\n"
我是否还需要我的MCU webserve才能进行跨域访问,还是只需要我的PC网络服务器来访问MCU网络服务器?
这是我监控PC网络服务器和MCU网络服务器的结果。
MCU网络服务器响应似乎缺少其他标头,因为它只停在Content-length: 1121
答案 0 :(得分:0)
为此你也应该在客户端启用核心。 例如,
$.support.cors = true;
$.ajax({
crossDomain: true,
type: "POST",
url: "url"
}).done(function (data) {
alert(data);
});