Thank you very much, Alexander!
I tried
----------------
let text
if (re.status) {
  text = await.re.text()
  console.log(text)
}
==============
and it works!

On Mon, May 26, 2025 at 5:12 PM Alexander Ertli <
ertli.alexan...@googlemail.com> wrote:

> Hey!
>
> I saw your post and to me it looks like the issue is in your JavaScript
> code. You're using response.statusText, which is *not* the response body.
> It's expected to see exactly what you're observing, because statusText just
> gives you the standard reason phrase for the status code (like "Forbidden" for
> 403), and not the actual text you set in Go with http.Error.
>
> If you curl that endpoint, you should see that the Go code behaves
> correctly and returns your custom message in the *body*. So the Go server
> is likely doing the right thing — it's just that the JS code isn't reading
> the body where your "Whatever! I return an error" message lives.
>
> Try replacing response.statusText with await response.text() and you
> should get your custom message back.
> If that's not the case and your code snippet is just not representing what
> you use, share the corrected version in a follow up.
>
> Hope that helps.
>
> Am Mo., 26. Mai 2025 um 10:48 Uhr schrieb Zhaoxun Yan <
> yan.zhao...@gmail.com>:
>
>> Hi All!
>> I am stuck with this bizarre phenomenon that the http.Error function does
>> not repond with the customizable text defined by the second argument.
>> Suppose a simple ill http server with this function that responds an
>> error as always:
>> ------------------------------
>> func (con *Net) ServeHTTP(w http.ResponseWriter, r *http.Request) {
>>   http.Error(w, "Whatever! I return an error", 403)
>>   return
>>   //the original functional codes are below and they won't get executed
>> now
>>   ......
>> }
>> ==================
>> So it is easy to transform any of your functional go http code with the
>> two magic lines and test the functionality of http.Error.
>>
>> And here is some javascript that visits a particular url where your
>> ServeHTTP serves with GET method:
>> -----------------------------------
>> async function get(url){
>>     let re
>>     try{
>>         re=await fetch(url,{method: 'GET'})
>>     }catch(err){
>>         alert(''The url your provided is not reachable!")
>>         return Promise.reject(1)
>>     }
>>   if (re.status != 200){
>>     alert(`Server responded with an error:${re.status} ${re.statusText}`)
>>     console.log(`Server responded with an error:${re.status}
>> ${re.statusText}`)
>>     return Promise.reject(re.status)
>>    }else{ // irrelevant in this situation
>>     return re.json()
>>   }
>> }
>>
>> function test_Error403(){
>>   get('[where the golang ServeHTTP function serves]').
>>   then((msg) => console.log(msg))}
>> =============================
>> Then you can link test_Error403() function with a button on an html file,
>> but be aware to change '[where the golang ServeHTTP function serves]' to
>> real url.
>>
>> The bizarre situation is I always get alert or console log like:
>>   Server responded with an error:403
>> while what I expect is:
>>   Server responded with an error:403 Whatever! I return an error
>>
>> So is there anything wrong with the syntax? How can I respond the client
>> with an arbitrary string as `statusText` ?
>>
>> Thanks in advance!
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "golang-nuts" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to golang-nuts+unsubscr...@googlegroups.com.
>> To view this discussion visit
>> https://groups.google.com/d/msgid/golang-nuts/CADEX6_VwACq%3DG9hciRr0c1LO3tVFtKs0ebMcvXxvjmdaMx%2Byfw%40mail.gmail.com
>> <https://groups.google.com/d/msgid/golang-nuts/CADEX6_VwACq%3DG9hciRr0c1LO3tVFtKs0ebMcvXxvjmdaMx%2Byfw%40mail.gmail.com?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion visit 
https://groups.google.com/d/msgid/golang-nuts/CADEX6_W8tWDYrDnXCkaULz_sNBZ%2BMnjWHCjgiena57gFb0BcDA%40mail.gmail.com.

Reply via email to