用newLisp开发网站六 REST API返回JSON串

本文探讨了使用newlisp返回JSON数据时遇到的问题,即jQuery的AJAX请求中的done回调无法正常工作,而always回调则能正常触发。文章通过排查问题根源,给出了解决方案,并分享了设置HTTP响应头及使用dragonfly内置JSON库的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天用newlisp返回JSON的时候,发现jQuery 的ajax的done始终不能工作,用always就可以。首先排除了jQuery 2.1.0的bug,然后就检查了newlisp返回的HTTP response,果然又问题。这里记录一下:

1. 要设置HTTP Response的一些信息

2. dragonfly内置了一个json库,可以将list转换成json串。

下面看个例子:

(set 'result
     '(("status" 0)))

;; create new code copy on local filesystem
(define (Resource.Cc:create)
  (set 'cpp-file-path (string SOURCE_LOCATION "/" ($POST "file_name")))
  (set 'cpp-file-code (string SOURCE_LOCATION "/" ($POST "code")))
  (if (write-file cpp-file-path cpp-file-code)
      (begin
       (Response:content-type Response:json-type)
       (Response:status 200)
       (print (Json:lisp->json result)))
    )
)

注意

1. begin语句里面两个Response上下文的函数分别设置了返回的数据类型和HTTP Status

2.用print将HTTP reponse内容返回出去

3. Json:lisp->json 帮助将内容编程json格式。json.lsp文件在下面的目录内:

dragonfly-framework/plugins-inactive/artfulcode/


上面的例子将返回一个json串,形如:

{"status": 0}

相关API文档参考:

http://dragonfly.neocortex.io/api

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值