Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法从spring控制器返回字符串并在网页上显示_Java_Angularjs_Spring Mvc - Fatal编程技术网

Java 无法从spring控制器返回字符串并在网页上显示

Java 无法从spring控制器返回字符串并在网页上显示,java,angularjs,spring-mvc,Java,Angularjs,Spring Mvc,我使用springmvc和angularjs读取数据并显示在网页上。 为了从URL读取数据,我使用了JSOUPAPI 在将从URL读取的内容显示回网页时遇到错误。任何建议都会有所帮助 代码: html: 弹簧控制器: @RequestMapping(value = "/getHTMLDataFromURL", method = RequestMethod.GET) public @ResponseBody String getHtmlStrigContent() throws E

我使用springmvc和angularjs读取数据并显示在网页上。 为了从URL读取数据,我使用了JSOUPAPI

在将从URL读取的内容显示回网页时遇到错误。任何建议都会有所帮助

代码:

html:

弹簧控制器:

@RequestMapping(value = "/getHTMLDataFromURL", method = RequestMethod.GET)
    public
    @ResponseBody String getHtmlStrigContent() throws Exception {
        Document doc = Jsoup.connect("https://xyz.abc.com/myFile.pdf").get();
        String htmlString = doc.toString();
        System.out.println("asD" + htmlString);
        return htmlString;
}
错误消息:

SyntaxError: Unexpected token < in JSON at position 0
    at JSON.parse (<anonymous>)
    at Ec (angular.min.js:16)
    at ic (angular.min.js:93)
    at angular.min.js:93
    at q (angular.min.js:7)
    at od (angular.min.js:93)
    at f (angular.min.js:95)
    at angular.min.js:132
    at m.$eval (angular.min.js:146)
    at m.$digest (angular.min.js:143)
(anonymous) @ angular.min.js:119
myService.js:158 Error while fetching dataSyntaxError: Unexpected token < in JSON at position 0
SyntaxError:JSON中位置0处的意外标记<
在JSON.parse()处
在Ec(角度最小:16)
在ic(角度最小:93)
在角度上。最小js:93
在q处(角度:7)
外径处(角度最小js:93)
在f(角度最小:95)
角度。最小值:132
以m.$eval(角度最小:146)
在m.$digest时(angular.min.js:143)
(匿名)@angular.min.js:119
myService.js:158获取位置0处JSON中的DataSyntaError:Unexpected token<时出错

我正在尝试从另一个网页读取内容并显示在我们的应用程序网页中。

这看起来像是,js正在尝试以JSON格式解析HTML响应

来自AngularJS$http

所有请求的默认标头为

$httpProvider.defaults.headers.common (headers that are common for all requests):
Accept: application/json, text/plain, */*
默认转换是

If the data property of the request configuration object contains an object, serialize it into JSON format.
您可以通过在请求中设置内容类型头来覆盖默认值

var req = {
 method: 'GET',
 url: '/getHTMLDataFromURL',
 headers: {
   'Content-Type': 'text/plain',
   'Accept': 'text/plain'
 }
}

$http(req).then(function(){...}, function(){...});

看起来Angular认为响应应该是JSON而不是HTML。在
@RequestMapping
注释中,尝试添加
products=“text/plain”
products=“text/html”


但是,您还有另一个问题:由于明显的安全问题,默认情况下Angular不会将变量的内容显示为HTML。在以这种方式使用内容之前,您需要明确地告诉Angular您信任这些内容。有关如何执行此操作的示例。

当从AngularJS$http文档中删除response.data并尝试responseEditing my response时,它会显示相同的错误。内容类型的默认标题为:$httpProvider.defaults.headers.common(对所有请求都通用的标题):Accept:application/json,text/plain,/,您必须将其更改为仅接受文本。谢谢,它现在在网页上显示为字符串。如何将返回的响应显示为网页(因为响应是html内容)。使用类似$(“.inner”).append(“hello”,请参阅的append()函数jquery@abstractnature:Angular没有完整的jquery实现,我认为不支持
append
(尽管我可能错了)。无论如何,$sce服务是以角度处理此问题的首选方式。它正在工作,但我想显示html的输出,我的意思是我正在从URL读取html内容,当我在浏览器中打开它时,它将显示网页(与我们点击URL时看到的页面相同)。当前它显示为字符串,我是否可以将响应显示为网页而不是html的字符串表示形式。任何建议都会有帮助。谢谢。@sss:请参阅我的第二段。:@sss:很乐意帮助!
If the data property of the request configuration object contains an object, serialize it into JSON format.
var req = {
 method: 'GET',
 url: '/getHTMLDataFromURL',
 headers: {
   'Content-Type': 'text/plain',
   'Accept': 'text/plain'
 }
}

$http(req).then(function(){...}, function(){...});