- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图让 NanoHTTPD(在 Android 设备上)以请求 javascript 可以解释响应的方式响应 AJAX 请求。
我已经实现了 NanoHTTPD 服务方法:
public NanoHTTPD.Response serve(String uri, NanoHTTPD.Method method,
Map<String, String> header,
Map<String, String> parameters,
Map<String, String> files) {
String msg = "Hello, you have connected.";
return newFixedLengthResponse( msg );
}
如果我从本地网络浏览器连接到“http://127.0.0.1:8080”,它会加载一个包含源的页面:
<html>
<head></head>
<body>Hello, you have connected.</body>
</html>
到目前为止一切顺利,尽管我不确定在何处引入了 html 格式。
但我坚持的是,如果我使用来自 javascript 的 AJAX 来尝试传递数据:
$.ajax({
url: 'http://127.0.0.1:8080',
type: 'POST',
data:{ printData: dataToPrint },
success: function(d){
alert('success');
},
error: function (jqXHR, textStatus) {
alert("failed, jqXHR: " + jqXHR.responseText + " " + jQuery.parseJSON(jqXHR.responseText) + " textStatus: " + textStatus);
}
})
(这只是一个例子,我试过成功/失败/完成/错误方法,我试过指定数据类型,我试过返回函数中的不同参数,但都不起作用)。当运行此 javascript 时,NanoHTTPD 服务器会很好地接收 printData,但是当它发送响应时,它只会触发错误/失败方法,并且方法参数从不包含任何内容——我无法设置状态或返回消息或任何东西。
我尝试了 Serve 方法的不同返回值,包括:
String mime_type = NanoHTTPD.MIME_PLAINTEXT;
String msg = "{\"status\":\"1\",\"responseText\":\"this is the response\"}";
InputStream testReply = new ByteArrayInputStream(msg.getBytes(StandardCharsets.UTF_8));
// return newFixedLengthResponse(NanoHTTPD.Response.Status.OK, "", msg);
// return new NanoHTTPD.Response( NanoHTTPD.Response.Status.OK, mime_type, testReply);
// return NanoHTTPD.newFixedLengthResponse( NanoHTTPD.Response.Status.OK, mime_type, msg);
// return NanoHTTPD.newFixedLengthResponse(msg);
这些都不起作用。
我也试过这个javascript:
$.get("http://127.0.0.1:8080", function( my_var ) {
console.log(my_var);
});
如果运行我在 NanoHTTPD 上的断点,但根本不会触发 javascript 方法。
最佳答案
我认为您需要在服务器响应中添加这些 header :
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: POST, GET, OPTIONS, DELETE
Access-Control-Max-Age: 86400
关于javascript - 如何让 NanoHTTPD 响应 AJAX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34039392/
在 index.html 中,使用外部 css 和图像 src 的路径用于从文件夹请求 css 图像。然而,图像未加载且 css 样式未应用于页面。 import java.io.*; import
如何确定发起请求的 IP 地址?我当前的代码: @Override public Response serve(String uri, Method method, Map headers,
我正在关注this post因为我想用 NanoHTTPD 处理 POST 请求。当我将其放入 Android Studio 中的 MainActivity 类中时,出现错误: 'Response(f
我尝试使用 NanoHTTPD 服务器 在浏览器上显示图像,但始终没有显示任何内容。这是我的服务方法的一部分: else if(uri.contains(".png")){ Small
使用 nanohttpd,我创建了一个网页,上面有按钮,单击按钮时,我使用不同的 URI 对 nanohttpd 进行 ajax get 调用。 屏幕上的不同按钮发送不同的参数值。 但在服务器停止看到
我看了很多帖子,但找不到我的问题的答案...... 所以我可以在我的设备上启动网络服务器,当我尝试上传文件时,浏览器显示“上传成功”,但我在我的设备上找不到该文件,我不知道它是否已上传到设备.我已经设
我玩的是NanoHTTPD和基于它的WebServer。要更新我的代码(应用程序)中的任何对象,我可以使用 GET/POST 方法。但是我怎样才能创建动态页面呢?例如,我在光盘上有 html 页面,它
这个问题真的非常愚蠢,因为我没有使用 Maven 的经验。 我对 NanoHTTPD 作为项目中的嵌入式 Web 服务器感兴趣,但是在下载源代码并对其进行测试后,我收到以下错误: 无法在项目 nano
我使用下面的代码使用 NanoHTTPD 上传文件,但没有上传任何东西,也没有给我临时路径。 代码是: new Response( HTTP_OK, MIME_HTML, ""
我正在尝试使用带有嵌入式 Nanohttpd 服务器的 Web View 。我可以让两者都工作,但不能彼此合作。 我可以将 WebWiew 请求发送到其他未嵌入的代理,这有效。或者我可以从 Firef
我编写了一个java桌面应用程序,它使用嵌入式NanoHTTPD Web服务器接受http请求https://github.com/NanoHttpd/nanohttpd ,在收到http请求后,我的
我想制作一个使用nanohttp创建Web服务器的Android应用程序,此代码不会给我错误,但是当我在端口8000上的浏览器中输入IP地址时,它说连接超时,请帮助任何帮助将被应用这是代码.. pac
目前我需要在 Android 应用程序中使用本地 http 文件服务器,因此我决定使用 NanoHttpd SimpleWebServer。但我遇到了这样的异常: java.lang.NullPoin
我已经在 java 中使用 nanohttpd 实现了一个 websocket 服务器。我可以从网页中的 js 访问 websocket 服务器。它很好用。 但是,现在我想创建一个基于 Java 的客
我已经实现了 nanohttpd 服务器 nano我的目标是根据我的条件将请求转发到不同的域。 我的代码是这样的 package CreateServer; import java.io.File;
我想从服务器播放 mp3 文件服务器端代码: if (uri.contains("mp3")) { FileInputStream fis = null; try {
我需要创建一个能够为设备的本地文件提供服务的本地服务器。我找到了这个 library看起来它能够满足我的需求。 我已经在这个项目中尝试过示例,它工作正常!但它发布 .html 页面,我需要图片。 我在
我正在使用 NanoHTTPD 实现自定义 Web 服务器。我有扩展 NanoHTTPD 的 BaseServer 类: public class BaseServer extends NanoHTT
我已经将一个文件放在 NanoHTTPD 服务器上,如下所示: private class WebServer extends NanoHTTPD { public WebServer()
我正在使用 NanoHTTPD 播放我的 sdcard 中的音频文件,它工作正常。 如果我输入 http://172.16.6.75:8080在我的浏览器中它开始播放,但我想播放像 http://17
我是一名优秀的程序员,十分优秀!