fix: encode custom prompt to handle non-ASCII characters in request headers
This commit is contained in:
		
							
								
								
									
										14
									
								
								worker.js
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								worker.js
									
									
									
									
									
								
							@@ -255,7 +255,17 @@ async function recognizeImage(token, imageId, request) {
 | 
				
			|||||||
  
 | 
					  
 | 
				
			||||||
  // 从请求头中获取高级模式状态和自定义prompt
 | 
					  // 从请求头中获取高级模式状态和自定义prompt
 | 
				
			||||||
  const advancedMode = request.headers.get('x-advanced-mode') === 'true';
 | 
					  const advancedMode = request.headers.get('x-advanced-mode') === 'true';
 | 
				
			||||||
  const customPrompt = request.headers.get('x-custom-prompt');
 | 
					  
 | 
				
			||||||
 | 
					  // 解码自定义prompt
 | 
				
			||||||
 | 
					  let customPrompt = '';
 | 
				
			||||||
 | 
					  try {
 | 
				
			||||||
 | 
					    const encodedPrompt = request.headers.get('x-custom-prompt');
 | 
				
			||||||
 | 
					    if (encodedPrompt) {
 | 
				
			||||||
 | 
					      customPrompt = decodeURIComponent(atob(encodedPrompt));
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  } catch (error) {
 | 
				
			||||||
 | 
					    console.error('Prompt解码错误:', error);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  const defaultPrompt = '请识别图片中的内容,注意以下要求:\n' +
 | 
					  const defaultPrompt = '请识别图片中的内容,注意以下要求:\n' +
 | 
				
			||||||
                    '对于数学公式和普通文本:\n' +
 | 
					                    '对于数学公式和普通文本:\n' +
 | 
				
			||||||
@@ -1579,7 +1589,7 @@ function getHTML() {
 | 
				
			|||||||
    '            \'Content-Type\': \'application/json\',',
 | 
					    '            \'Content-Type\': \'application/json\',',
 | 
				
			||||||
    '            \'x-custom-cookie\': savedCookie,',
 | 
					    '            \'x-custom-cookie\': savedCookie,',
 | 
				
			||||||
    '            \'x-advanced-mode\': advancedMode.checked,  // 添加高级模式状态',
 | 
					    '            \'x-advanced-mode\': advancedMode.checked,  // 添加高级模式状态',
 | 
				
			||||||
    '            \'x-custom-prompt\': promptInput.value,     // 添加自定义prompt',
 | 
					    '            \'x-custom-prompt\': btoa(encodeURIComponent(promptInput.value)), // Base64编码',
 | 
				
			||||||
    '          },',
 | 
					    '          },',
 | 
				
			||||||
    '          body: JSON.stringify({ imageId: uploadData.id }),',
 | 
					    '          body: JSON.stringify({ imageId: uploadData.id }),',
 | 
				
			||||||
    '        });',
 | 
					    '        });',
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user