Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.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对象_Javascript_Node.js - Fatal编程技术网

从联机资源解析Javascript对象

从联机资源解析Javascript对象,javascript,node.js,Javascript,Node.js,我正在尝试使用nodejs联机解析Javscript对象 例如,此文件: 这不是JSON,而是常规JavaScript。我已使用以下方法成功解析出JavaScript对象: /* Data is the JS file above */ var j = data.substring(data.indexOf('{'), data.indexOf('}') + 1); 但是,如何解析它,以便将其作为对象读取JSON.parse不起作用,因为它不是JSON格式的 编辑 由于挑战键是我所需要的,我最

我正在尝试使用nodejs联机解析Javscript对象

例如,此文件:

这不是JSON,而是常规JavaScript。我已使用以下方法成功解析出JavaScript对象:

/* Data is the JS file above */
var j = data.substring(data.indexOf('{'), data.indexOf('}') + 1);
但是,如何解析它,以便将其作为对象读取
JSON.parse
不起作用,因为它不是JSON格式的

编辑

由于
挑战
键是我所需要的,我最终用
子字符串
索引
解决了它:

var start = data.indexOf('\'');
var end = data.substring(start + 1).indexOf('\'');
var challenge = data.substring(start, (start + end) + 1);
但我还是想知道解决这个地区问题的办法。是的,我可以使用
“'”
,但在这个项目中,我们坚持使用单引号,我是一个坚持者,以确保所有内容都符合样式指南。我知道很傻,只是习惯而已。

在浏览器中 这应该适用于客户端JavaScript:

var js = document.createElement("script");

js.type = "text/javascript";
js.src = "http://www.google.com/recaptcha/api/challenge?k=6Leluc8SAAAAAElzN1CrcweqVxkUfmGa7QC40pUU";

document.body.appendChild(js);
它将外部文件添加到HTML中。里面的JavaScript在加载后运行


Node.js 在node中,我会走这条路:

  • 执行HTTP请求以获取代码
  • 将代码另存为文本文件
  • require
    刚刚保存的文件
  • 如果你走这条路,你的代码应该是这样的:

    require("request")("http://www.google.com/recaptcha/api/challenge?k=6Leluc8SAAAAAElzN1CrcweqVxkUfmGa7QC40pUU", function(error, response, body) {
        require('fs').writeFile('./stuff.js', body, function(err) {
            if(err) {
                return console.log(err);
            }
            var stuffIJustLoaded = require('./stuff.js');
        }); 
    });
    

    对于这个问题,最简单的方法是如下

    var x = JSON.stringify({
        challenge : '03AHJ_VuuiaIB_izO6VJ6PifXI8A8i1yBeG6biCjadtaZHk5pbxfbW5JPpEXBEay-LPdCzSOI1bQgdnjq1tQVSqzQ63hMQB1Sjlho4LdzfZKLXuK3TKZD1YPr5bIjM-dYqHIkcYpaanchXOXLkHNoj0B6_ZrUk4rZg-o790H1LMNzoPGy3qkk6suYWs1CERFjkTO_mw9puMnYQNITPzBnRS-QMilbch2d_PeM2aDGToLSQiLn8mgHwP7fUHvCcE9VGzNZNXkDC8wF-YvUCxU354VqeSa8U7KKycg',
        timeout : 1800,
        lang : 'en',
        server : 'http://www.google.com/recaptcha/api/',
        site : '6Leluc8SAAAAAElzN1CrcweqVxkUfmGa7QC40pUU',
        error_message : '',
        programming_error : '',
        is_incorrect : false,
        rtl : false,
        t1 : 'Ly93d3cuZ29vZ2xlLmNvbS9qcy90aC9PejNvSUJCSlYxanlWSi13QTFqRndDd3dhbk5QVTh2TGd6SWVaNGc2TkxnLmpz',
        t2 : '',
        t3 : 'V3h0N3Vzd1cvWFR1d08yYmtyZG5HdDFoS1oyenNXMzBpS0dkRXVHUXc4anVBemtvemM2R1VhVDlPSmk0M0lRSWtMVVFUZ1JIWHlmUjE0VlBKQldOUVJuWG4ydXVzdjhJY2JZbHFCNGgxUGwvUzlzbE1reEpMcVcrbFRiS2JQWE9ZUXo5M3EwVDVPTFB4WVdHcTkzK0RuTXpjUTRtV0VhTUxOcDhqa2M2MitTT2w4dHVudHJ6NnlYdWdOVzFLMmlZOG8zOG5uUGNGZnp5ODcyZXZwTlIzRytJdkQyVFdsZFNzOXJ1amtDSkpRamtvQUdIYVpnRDBrODJxREdMSjhqRElQY1BqbTNUcno3TFQ4bG5jZ1pjbUM3NFpXdHlmVWhmYnNXRDNkMlBuaFdvM1lyUUp4Y1R5Z2F3elR2K3hpLzFyeisydU9SaTVJVk9MZFdpekQ3Y0NUQ0NDRlhVdDg1MElZalp4MkNYbkVWNkFmUDZ1UDNTOXhvaWxtaGdzWkg0OTZyQVFTai81RWdGelpLcFNVQnVtbGJGaFVLTWRDbHlGZ1orbGdRSVVubWk0WURTc2JMd1FaZkRhZlBZcjhJY0pyOWZSaU1leGpuMU9TNWk5UkZ2M0hLTG5jQzh3Y3plVzVKZjluYlZOWWdVY1l5U3FadmxOamF0Q3ozeXphNDhtazZwNHlIYUtWN1RvSGNvKzArWGpncm01YVd5cXpoYnRWb3Z5R2loUDNZeWswQmwwbXo0eEJUVm9HUjMzcGdtRHNYaFZRZ3lxRGJ3Wjl4YWxoN3NDQ21MVUVVOHZWWUtucGltNXpjSkU5RUlTaTk3NDBpcENxVGMrdytvRXJWTzU2VTczckZmM0FDbjlaeDFYbklueTF5SnU1TXBMaXAwSk5LSHB2R0lLb0poVjFnZ2M4bnRmNW1xQXJpWHByc1hJTk9pT20rdWIxZjFiWVBnRFJ1T3U2bjhwQm4wd2pqSStXck1ZU0xCMzZabW1taEZreWhEWTRBa0RzTWVWTG9ydzZSanJ2WURsc3NxY2wxZTAzT1k1aXl5T0o5dVVsR09DcDhaNHFoeFdYY0JiWk5ONndXTndXTnJGOGxkQkI3cHBhUVUySTFBZTk1ZXVRWHdRQjB4SWhqd3ZZQ2ZQU21DRFByTzhPYm9rK1BkeU5rTXhXODZxSnNWVUliU3U2ekZIYWdaV2xoaEx0Y1B6UFYrNXNvZVZXeVVpUXZKL2orVHNiYXJ3OFN4cDRMYTJvYWhFSUdybTlvaklTZHUxODhCS1ByakE5YWU5c2hITTRGczBreFU3a0tVbDI5d3JnT2NpcW1vVlptOTdsZnU1cWxGSXRTajdoVGlUZlV2V2s4NGEyOVpDcG9Xek91ZTZ1eFdFalJuMTVBb0FaTlFRWnhhQ3RkRlJJWTZ4U2p6TWRMNG9qZDFXbXhZNkFrK1I0Z3FkclhWQ090SEc0cnZITVN5ZWJCZ0pqcWIwWDJ4aTZNOVJTRlAwMUc1OTRvQ0hLb1h2TWcvTUxneEZtaUdGRkhPNnpNN2F1djl2bm1nb1IzbXF0Y1J3U2ZBaDNoQmxlWjV6dVg4ejdUQldhaUNDWHNuTEpnY1lxendaYTFZQWNFbjB1aWhtb0lwYzJmYXBHa0xPbWV2MlgyejJWeWJzdThpM3A2MlgyOXFxZklPLy9GdGdDZURsN0VXOTM4YzhRbEgwa1hqeUNhRStmU2dNVkl3MUZyMU9XVFNReVJXSVA4UXFyOTJVM1pHYm83cmtGeFU3dXBpWWU4eG1qSkt4R0FRMEdhY2J3aXdnL3RCQ2NsZHdZQ3lGNTdkRzY3T0p0SzdSNkdoZm1VQWlvOEF0UGI5WU1UYllJOWlhTytRK3FCS1NrakxWQlVWY1R3d2gxRlAvUkZWbm5XRmNrazdLUjVreTh0bjFYUVB4bWM0ZytSZUtXTnBYWlVrYnllSGF6M0w0dkNjYkRBT1B0aDFrNW41WEphNmwzcFlJM29NTXU4L0p2WW1TKzlaWUtsRExncXZZOEVDUEFFd05VS3ZEV2d1SlpobzZURVFkOGF0ekFHNHFidXpudXRLYmk3SXlVUDF5cHVqMVNFSTEvOFB6NHRTZ1kwRUZwOGFhbmVtNDRJaUlSeXUxYk5hZ2JPWlZVZTJUM0V4WUZncldjNk9VcEhscGE2UWY5d2FVNDJROWovTmJHMkJ5VndUcFNNZTZPMHUxeFhXTEFWRlpuMnk2SmtHN2xSZXFCTDFnaTZoMEpncmxzeWg4U3NibGRZWU1UMlNZWndYR3dNZUhpc1IyNHlFY3BZK1l6YlZ4aTRLOWRYSFhNRDJsUGlleEJsaUVEUTZtZ2dlSUJiZThpY2FITlY4Vy82MW10dmRVaGVCZnhuSk5FVTFQcm5aQm0ram9UZ3o2T1NVanYzaXA1S3E5dkZFcllDd091WFIwaC8zSFg2bENXc1grN2hBYXdFMU5WVW9icFBnWEUwTWlmVkV3eFhnR1p4TlQ1bkt5Y1o0ZzMxSm1lSkEzZ0o1RU5Zb1ZrZHViN21wSkJDeHo2T3R5cWhSR0tIcGpURElVSFlhMGNQeUtkM0poRjdxakF3eEFwSVJBNXoyRXhnZVN4RXFZVWNzaGVzNHZvSXA2bXo3U1JTb20wZkpJeXdVSFQ3THBTY0d5L1o3ZkRtVHBLemF0cCtrRmJZYzIvS1VGQ045RWFVdHZvN0I1aWxkVlRoeHpBdWVPbHZ5djBBVkNvZndGR1dVQlBmTmZVNVdwWkMvZkN4VWNXeG92Z1F0V21yTzI1Q1pzdWN6bnBobnhSMWYrLzRzZUJyckdZdWo3Q1YxaXJRcDhDZlJ6RTJudUpkWGlscWE1YXRyWmhRM2g3d1BEVXpFcDFqK2JSUjZyZmRQZ0t4K01teEVGUjJPNlNZTGlZamIrTDRhTVRrSEMrMzBycmFyMkVGMEhKd3MxOFlKWisyVXRnMXJsL3kyWC83akhieVBvbmNQdDNobUpKbW52OEVYTWdsdmtSNDE5VW5yNGkwY0d0amhpek1zZlh4TGtXai9tNlR4S3ZLQ2Q0SnhVa21DUllZVG12ZWw2RG1ubWtBVFdkTjFEZW9VOVAvMjVWak83Y3FIY3VQNTMrRjgzTk1VYmxiVzZ4VFRUMDY3SDJOemQ5S0VvSFpMcUgveVFmMDlwOVRUakRrcXZlQkk2aUx0WEZFdmQvdW9HTm4vSmNocEFQQ1hsbkhQbTlPbGI1YjVVejZhbVVPQ0U5OWhQTGlBcS9nVUFFSk9qdkZuYjFua3pxemxaWFVRSFpLRGxPUDhLNzlPMUNHSVNNUDZWRzNOVk4xRUJnSkx5dDN3NWMwemI3TDVGZ2oyZ1J4V2ZSUHpCRkFpb2hNR0RWS0QwN0JxN1Zib3lLeWxnWFpodjdqeXRLMmVSUVI0S1pUcXZ4cXpRWE1oMm9wVWk0V1Jhdis3amdsMlpPRlhSS2g0OGp2WGZKZW04NlIyRHJHcjVvNkMyaWFsWHBRWnAwWFE0UHNucEw4cDBGMVFFWCtHK1hhMFJrWERmTkNBV0FLQkoxTm5nNW9CdVFYR0JXWFVnL0Qxd0VHdk1Ub0M5ZGJ3YkE0enBISUtBRjQvWTRzSk5xTGY5L3RVUGhXSkRBa2NyWDNuNTR0ZWo5bGpqcGlpQmVxMlBGa0lBRG1nRzlzQ2hSdHAvKzBlZjhCTkNnTGQxVk1iNVRqaXdJS0dNdXkyb0VCa2FablNVbmZpWWVrMy8zTHRsSVVrZGdkZ3NYdWFNd2piSGhJcEhOQlF4Q25acWxYcDBMM2RWdUIwMkdTS2NXcEZrV01ZVy9lTlRnNkVwYWdYN1NhVjY3amUwQm4rTUdnMjdJdXlhZ2xQVlJ0NFZObk9EblBmQmpOZjNHdWZpS3ZkNHcvdlJ4NXFxYk9tNGtLTjFKQ3VDcVAzaFBhcWZveWVpamhWS0RuVW83MEpka3gzSjk2bFpBT2N2Z1NJaVNlM2h3MmlNM1V2WlpaVnpnOVJna3FXTUIxdVVlRXZTVkdxR2hKY0VaVllNMVdxOUVxMy9sZzZmSktzMitCanUzbXdsSGV0RUgzdUF1OHlQU2g0REhYYnU2VjkrYkpJOFZXK213b0YzT2xaNzYvMUZ0Q20xZ2QxdkJBOWM3RFdaU3VuVlByTnBldXFSa3VoODBBZVFQQTQ2SjAzOEQvMFNxZ2Z3cjRUWndDT1dPWEFkanFlUWdOWEdSc05iWjVSRFRxVlJSeWZCdTl1ZUVyRlF5bkthSEJFRTNxLzhtOWZSVXJkTE5jVW83VmhQYlQzWXVCNThGMjZxQ2o4L0U4WkZNVDlxbUtMb3BxT3lPUGJhMEhwSlkvSGxoZHZib3FMYkVkaFNjYXp4OEJDWXMvOVVEZ2JCemhXVnVJbTBsRzh5bEhuVTIyM1lRa2oweDhYeUpqZ0hlalJJL3hVUlJ2OGF0MGZINi9FbXM1ZlA3VE1zb3Y0MjVZUmFjeVpZajd1OGhGLzRSVFU0SXJKVGZrRm4xMkI2Q3FxOWF5dURpcjZkOHdnVy9BbExmT2g4OGxjQVh0WlJLaStzalIxYmhPY2crTFlGZXUwS2lKbnEzM1ZXL2VCSVNXSkpFdVpmaW1DWUlFQnc4T0huN3ZiT3BxZG9Cb0JrdmZjK3hsUDdwR25rM0NDaHNHNGliWjVSS0FxZ1dleTZZb0I3V1dhNWNya3VrbWRoYTlOZVV3R29kNVRUOEp3T2Y0MUo1SE5JQStSb3ZHZy96ZkxoUVMxYm52VUNCYWZzOW1xMmVBd1k0b2R6TGNFY1lZbFo1dlJmYkVSeS9MbFpEYmR1a3ZMczVQbVhFVGkzL2lHZElkREg5Vy9iNmFVenNnUE1UZGxzNU5taVJ2blNnSGtmR2hmdUhsUGtyclZUaTVCWGgwaFVRMERxbnlLT1c5SksxNHptZFNEcVZEQ0U2cUhVak1iMDlvK1RhRjZJcjQrVERLQS9LNlplWDdWem5nc1ZrOHVzdFY0bWxXbVNlQ3IxREV5V295WUtvRitjbWxFRlJPeEgwSnRwYlU2VENwRE9GSVIyNHdOdWtxT3pGeVFxTTZsZlpMUVkyWWE4ZjBINVh4WHQzYUhTajI4RlVLcjBOZEYvOElsb3NIZnpRUzNmT2R3b3Q0K2ZRVk5ReXlYK2U0QUlVTllqaDFJSi9GTkdER3IzTWVDd2ZRbTVCVVN0QkhVc0VualJCUXFmS0hVaU9WS1FYSWpMbklQM2tRYXMwWWtFYnFWUi9zcFYwKzUveFpXbmtuTkduZTBhd25DeVhNeW1qMU05cWlackp1UlJjUTk3VVVMeU54QXorWlJwcEJ5ZjBER3ROOTNyS2RTeEJmQ3JGd1dXUHY4YXIweWxiRi9WOHdiUklSb0tET2dHZjl5MWVoaEFYSmxsSFJBaGdUSjBvOVlkUFBvT2l1bGlNVTFScnZIVk8xaVFmcW96UklaV3p4U2JSWkJYYXRhVkRVSVlKTTR6Wjdoak8rSnRNb0VDQlBUVncwYVlRZHVEUEJYcFFSM2RlbTY0eFZXZHY1Tkk2MUxwazUvdVdqN29KckRZYXh1ODR0bTU5dkIrYjB6dHpibmlyYUhMa3ZwNXFXSnFqN3p2NEVPNnhYTm5pcnVLa3AxME5GeWhLQ3ZIajB5WmhxYkF5SUlBV0YyWGxuSU1mcVZsZ1czT3A1MFhHeGxOMnI2QjJhRXBvL0ttRktKN2wvRldsakwveDlBemExMzQzUHJ2WElncm01dGt2clh3QXU1M1Y0YXp0MXdaT1pNZGNPdEZWRlRLczZwMjZhcHBHb1gzcGxzUVQ1NFdwWTVSdVdVQ2tqeHM1dVJXdjVnaG1JTGZ2WlE5MmxoVStTWko0RUQxRk54UjhRRi9hRzZzdmRNZ21icXk4Y21VOFFCaUJtbG03akNjQnIzaHE3bThIcWFoUnliYmdKbFZIWkN5bk92bTMxc1JWTXNsVkxmOXNNYnhWR0VZNHZaYm5pWGZRYlg2ejZubHRoYVgvaXNSZWdKbkxLZUFYdWdQTHdxd0RDRit0MHRSY2V2aVV1MEYzdDhtdDhIRFFGd2ZFbVk1REVYdjZRZ2doNlhTY1ZzVzRIbnVtWTg1UnVTaGxRNVNTcmg5bXVBVTdvNEdnenZRNlhMVi9zcFNSbnBxVkUzRmJQaGxKd004TVkxaFhURUpEZWFIb0hHNzNXbG4yQksrcmRQR0dNV3pUeEJjbHB1aEZPRVViSHF2Z2ZFSE1BNWc1MlVxZG5JaVNJOGtqQ240YUM3Uk51c1gzanluMnVDVmQ2dlI3TDJJMURtTU51dmtJckQwQnNGc2NhSWNTMm9sY0dBYzhXVHc1U29ZRXFnRkovOU8yU3M1dy9IY3E3bmQ5MkpKQzQwd2Z0RHRzTVJaODlLdm1HNlBCUnZJZ3lHM0k5N2tOWEh2YTdQK1Q0NjE1cTUrVzhQZXZVNEVRM0dXa0dYMUhuMTlpbmZCNUtkQkphTGJMeEl1WTYyaWNWbU0rUUlpMmNyVmZ2YXN6SnJPSDBaN0hRaHJqcTVWdWFiY2tnSUpqQjZLUXVPSGVDQk95aVZobjQrUGJxQWl4Sk5DMDZuUDVLRzRTSkc1V0dTMHpxUmYyV2VRc0I3OFJPT1hpVnpwUll0ZEZQNGVVazVQUGo2NXFmVVJVZCtzUVFUNzZlczBocllyVFI3cDZpbGpzalZ6SGI5Q0NUbVJoYW1OejhQL2xnNFAxSUVrYUhlMElBNklLZUZXeFRwbWlFMytmWHl3K1hqbzF5WFZXUGgzaHZUTUhUbG1iUTF1SHpyaTUrb1lSaGpPQ2FLQTBYUzJNYkN4dXBzRVFTdUJYZmFQUDZEVVFIdnpxUjBDVXNBU1pEbU43NjVTczJDZTlneG9kbXJac1lXMEFsK0tQZ1V5bmd0bjA2Q1hyQlorWTQ5WVR2NFpFdlJ1WDNrdTJTazBTYjNRMXBHZDNjR2gxeW5scHpvM2hwWnRUZytDdDdtcFVKQURNdHdZa05QTG56TE5PdmNzbGIzNE5TbWdMREJEeTV0NGhOVFJCYWdGL0ZhK3JjdkNGK0lYWkdOZXNNclpMVmR5b29LTGRwNHptYk8yaEo1OUVlTE9RYUtZbkhtUWNLRU9oNjBBdktvZFZuMGVBbWxYc1YzRkRyZkp2ZE9QOURlOHk4OUV3VXpzc3U2MnE1aUJ2REs1SG90WDMybW9Jam1ncnRRcWQxaHRUeVlVMEJoTGFuRE5sSEtTdUp0UVlqQVl4MzN1UnZsZE8yQTA1cEpHdUd0UDRNQkhjTmFEUlV0WTNyamhOUnBnNDB2RndVNHZWSFVRVWZCVGdJNXNJY2pCOUlVUytpVWQ3VFg5ZUxhSnpaV3hGR2pRWm9JRVN3b0NrWlAwNnVKTmV1VGpMa3htWXBQcCtyVXpqdG5IU0Y4Q3ZhdWhtSkxsTVZyeEQxb3RDSXAzWkUxd0ZXVG9WV000Qjh5NlA2ZzB2ajJqSWw1RitYeG5RZzZaNVdqS1A3UjhGaWJMOVpNNEZMR1VoTzdlTWRzU1YxK1VNQytzZFJrVnM1ZjYyVys0T2Jld3FacTI3Qy8wdDJ4NEYrUG16QU92alpqcG1KbnI5RU5WZGZMVk1VZGNJeUJiMVhuVHJrRWw3UnNRQkxsa1FPOHM0cEt4eDdYazNTeCt6NGcxTm8xY1pXaHFWdFZ5bklkOXYxdU9jVklBYUE9'
    });
    console.log(JSON.parse(x).challenge);
    //03AHJ_VuuiaIB_izO6VJ6PifXI8A8i1yBeG6biCjadtaZHk5pbxfbW5JPpEXBEay-LPdCzSOI1bQgdnjq1tQVSqzQ63hMQB1Sjlho4LdzfZKLXuK3TKZD1YPr5bIjM-dYqHIkcYpaanchXOXLkHNoj0B6_ZrUk4rZg-o790H1LMNzoPGy3qkk6suYWs1CERFjkTO_mw9puMnYQNITPzBnRS-QMilbch2d_PeM2aDGToLSQiLn8mgHwP7fUHvCcE9VGzNZNXkDC8wF-YvUCxU354VqeSa8U7KKycg
    

    如果你相信那台服务器不会吐出恶意代码,那么总会有
    eval
    ,我无法想象谷歌会这样做,但我也不相信
    eval
    ,以防万一。我是超级偏执狂。对不起,我忘了提到我在使用node。我最好在描述中加上这一点。我知道这和eval一样糟糕,但数据的来源是谷歌,应用程序运行在我机器上的虚拟机中,虚拟机的唯一目的是提取验证码进行分析。在这种情况下,我可以做一个例外。@bughnteruk:我认为保存代码然后要求它仍然是一个比
    eval
    更干净的选择,尽管它确实仍然相当“黑”。我可能错了,但我不认为你还有比这更令人讨厌的选择。@Bughnteruk:无论如何,请告诉我我在更新的答案中建议的方法是否适合你。老实说我自己还没试过,但在你的情况下我会这么做。我得到一个错误:
    undefined:2挑战:'03AHJ_VutWM1RaNjTPTM-7m_IzY-ab6hyginnjrBxlmHnj0RvxGNNb6ixRfyjZOj6dQFDM5Vi0KvD0LokEisqcacbZuowsne0LifijP85PWWqpfzChunfCvKvU7Ovkigzis3I3I3Hnv67YPdG7DgDgDgDgDgDgDg8UtHgHgHgBbHgKa-4GxepxDvDvDdDvFxDvFxDvFxDvFxDvFxDvFjYYYYY,
    我刚刚在我的节点上尝试过。。。。你需要做JSON.parse(JSON.stringify(..)。challengeI有一个金发女郎的时刻,我用另一种方式做了。很好,谢谢。只是更新一下,从源代码加载数据时失败。质询未定义。当您从源加载质询时,只需将其保存在局部变量中。。。。如果你给我看源代码,也许我能看出问题所在