Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.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
Javascript 将带有XMLHttpRequest的请求id发送到服务器端_Javascript_Spring Boot_Xml Parsing_Xmlhttprequest - Fatal编程技术网

Javascript 将带有XMLHttpRequest的请求id发送到服务器端

Javascript 将带有XMLHttpRequest的请求id发送到服务器端,javascript,spring-boot,xml-parsing,xmlhttprequest,Javascript,Spring Boot,Xml Parsing,Xmlhttprequest,在这里,我部署了Id为的Get请求,将其从客户端传递到服务器端,以便根据Id下载excel文件 客户端js文件 $scope.getAUGFile = function () { var xhr = new XMLHttpRequest(); xhr.withCredentials = true; var params = JSON.stringify({ articleId: articleId

在这里,我部署了Id为的Get请求,将其从客户端传递到服务器端,以便根据Id下载excel文件

客户端js文件

$scope.getAUGFile = function () {

                var xhr = new XMLHttpRequest();
                xhr.withCredentials = true;
                var params = JSON.stringify({ articleId: articleId });
                var url = RESOURCES.USERS_DOMAIN + '/AUGFile/excelDownload/'
                xhr.open("GET", url+"?"+params);
                xhr.setRequestHeader("authorization", getJwtToken());
                xhr.responseType = 'blob';

                xhr.onload = function () {
                    if (this.status === 200) {
                        saveAs(xhr.response, "mvvAUGExcelTemplate.xls");
                    }
                };

                xhr.send(null);
            };
$scope.getAUGFile = function () {

                var xhr = new XMLHttpRequest();
                xhr.withCredentials = true;
                var url = RESOURCES.USERS_DOMAIN + "/AUGFile/excelDownload/"+articleId;
                xhr.open("GET", url);
                xhr.setRequestHeader("authorization", getJwtToken());
                xhr.responseType = 'blob';

                xhr.onload = function () {
                    if (this.status === 200) {
                        saveAs(xhr.response, "mvvAUGExcelTemplate.xls");
                    }
                };

                xhr.send(null);
            };
 @RequestMapping(value = "/AUGFile/excelDownload/{articleId}", method = RequestMethod.GET)
    public ResponseWrapper excelGenerateAUG(HttpServletRequest request, HttpServletResponse response,@PathVariable("articleId") String articleId){

        try{
            fileService.downloadAUGFile(request,response,articleId);
            return ResponseWrapper.successWithMessage(messageSource.getMessage("success_code",null, Locale.ENGLISH));
        } catch (Exception e){
            lOG.error(">> Excel file Download error", e);
            return ResponseWrapper.failWithMessage(messageSource.getMessage("fail_code", null, Locale.ENGLISH));
        }
    }
服务器端js文件(春季启动)

当我执行客户端函数时,在服务器端将
articleId
值设置为NULL。我怎样才能修好它?欢迎任何建议、帮助和指点

首先
console.log(articleId)
在函数内部,查看xhr是否已定义并可访问它来发送

&改为试试这个
xhr.open(“GET”,url+articleId)

或者试试这个
xhr.open(“GET”,url+“?articleId=“+articleId”)

我找到了正确的方法!它现在正在工作

客户端js文件

$scope.getAUGFile = function () {

                var xhr = new XMLHttpRequest();
                xhr.withCredentials = true;
                var params = JSON.stringify({ articleId: articleId });
                var url = RESOURCES.USERS_DOMAIN + '/AUGFile/excelDownload/'
                xhr.open("GET", url+"?"+params);
                xhr.setRequestHeader("authorization", getJwtToken());
                xhr.responseType = 'blob';

                xhr.onload = function () {
                    if (this.status === 200) {
                        saveAs(xhr.response, "mvvAUGExcelTemplate.xls");
                    }
                };

                xhr.send(null);
            };
$scope.getAUGFile = function () {

                var xhr = new XMLHttpRequest();
                xhr.withCredentials = true;
                var url = RESOURCES.USERS_DOMAIN + "/AUGFile/excelDownload/"+articleId;
                xhr.open("GET", url);
                xhr.setRequestHeader("authorization", getJwtToken());
                xhr.responseType = 'blob';

                xhr.onload = function () {
                    if (this.status === 200) {
                        saveAs(xhr.response, "mvvAUGExcelTemplate.xls");
                    }
                };

                xhr.send(null);
            };
 @RequestMapping(value = "/AUGFile/excelDownload/{articleId}", method = RequestMethod.GET)
    public ResponseWrapper excelGenerateAUG(HttpServletRequest request, HttpServletResponse response,@PathVariable("articleId") String articleId){

        try{
            fileService.downloadAUGFile(request,response,articleId);
            return ResponseWrapper.successWithMessage(messageSource.getMessage("success_code",null, Locale.ENGLISH));
        } catch (Exception e){
            lOG.error(">> Excel file Download error", e);
            return ResponseWrapper.failWithMessage(messageSource.getMessage("fail_code", null, Locale.ENGLISH));
        }
    }
服务器端js文件

$scope.getAUGFile = function () {

                var xhr = new XMLHttpRequest();
                xhr.withCredentials = true;
                var params = JSON.stringify({ articleId: articleId });
                var url = RESOURCES.USERS_DOMAIN + '/AUGFile/excelDownload/'
                xhr.open("GET", url+"?"+params);
                xhr.setRequestHeader("authorization", getJwtToken());
                xhr.responseType = 'blob';

                xhr.onload = function () {
                    if (this.status === 200) {
                        saveAs(xhr.response, "mvvAUGExcelTemplate.xls");
                    }
                };

                xhr.send(null);
            };
$scope.getAUGFile = function () {

                var xhr = new XMLHttpRequest();
                xhr.withCredentials = true;
                var url = RESOURCES.USERS_DOMAIN + "/AUGFile/excelDownload/"+articleId;
                xhr.open("GET", url);
                xhr.setRequestHeader("authorization", getJwtToken());
                xhr.responseType = 'blob';

                xhr.onload = function () {
                    if (this.status === 200) {
                        saveAs(xhr.response, "mvvAUGExcelTemplate.xls");
                    }
                };

                xhr.send(null);
            };
 @RequestMapping(value = "/AUGFile/excelDownload/{articleId}", method = RequestMethod.GET)
    public ResponseWrapper excelGenerateAUG(HttpServletRequest request, HttpServletResponse response,@PathVariable("articleId") String articleId){

        try{
            fileService.downloadAUGFile(request,response,articleId);
            return ResponseWrapper.successWithMessage(messageSource.getMessage("success_code",null, Locale.ENGLISH));
        } catch (Exception e){
            lOG.error(">> Excel file Download error", e);
            return ResponseWrapper.failWithMessage(messageSource.getMessage("fail_code", null, Locale.ENGLISH));
        }
    }

您是否在客户端检查了articleId的值。您可以console.log并检查您是否获得了一些值。您意识到您的请求将类似于
/AUGFile/excelDownload/?{articleID:123}
-您的服务器端可以处理吗?我想由于您的url,在您的服务器端,您需要
/
->
/AUGFile/excelDownload/{articleID}之后的参数
在javascript/angularjs中,您调用的api参数为
->
url+“?”+params