Saya mencoba mencari cara untuk mengambil semua permintaan yang dibuat ke direktori tertentu dan mengembalikan string json tanpa arahan ulang, di nginx.
Contoh:
curl -i http://example.com/api/call1/
Hasil yang diharapkan:
HTTP/1.1 200 OK
Accept-Ranges: bytes
Content-Type: application/json
Date: Fri, 13 Apr 2012 23:48:21 GMT
Last-Modified: Fri, 13 Apr 2012 22:58:56 GMT
Server: nginx
X-UA-Compatible: IE=Edge,chrome=1
Content-Length: 38
Connection: keep-alive
{"logout": true}
Inilah yang saya miliki sejauh ini di nginx conf saya:
location ~ ^/api/(.*)$ {
index /api_logout.json;
alias /path/to/file/api_logout.json;
types { }
default_type "application/json; charset=utf-8";
break;
}
Namun, ketika saya mencoba membuat permintaan, Tipe-Konten tidak menempel:
$ curl -i http://example.com/api/call1/
HTTP/1.1 200 OK
Accept-Ranges: bytes
Content-Type: application/octet-stream
Date: Fri, 13 Apr 2012 23:48:21 GMT
Last-Modified: Fri, 13 Apr 2012 22:58:56 GMT
Server: nginx
X-UA-Compatible: IE=Edge,chrome=1
Content-Length: 38
Connection: keep-alive
{"logout": true}
Apakah ada cara yang lebih baik untuk melakukan ini? Bagaimana saya bisa mendapatkan jenis aplikasi / json untuk tetap?
EDIT: Solusi!
Saya tahu Anda bisa mengirim string manual dalam pernyataan pengembalian, jadi saya melakukan itu alih-alih menggunakan alias!
Kode akhir yang saya gunakan:
location /api {
types { }
default_type "application/json";
return 200 "{\"logout\" : true"}";
}
redirect
ataupermanent
bendera atau ditentukan.Sangat sederhana. Seluruh konfigurasi dapat:
sumber